Bug ID 98529
Summary invalid reference transfer on online account authentication
Product SyncEvolution
Version unspecified
Hardware Other
OS All
Status NEW
Severity normal
Priority medium
Component SyncEvolution
Assignee syncevolution-issues@syncevolution.org
Reporter renatox@gmail.com
CC syncevolution-issues@syncevolution.org

authentication process is leaking reference during the authentication:

This happens in all logs. Perhaps this is wrong:
signon-accounts.cpp:
GVariantCXX sessionData(ag_auth_data_get_login_parameters(m_authData,
extraOptions), TRANSFER_REF);


According to
http://accounts-sso.gitlab.io/libaccounts-glib/AgAuthData.html#ag-auth-data-get-login-parameters,
ag_auth_data_get_login_parameters() does not transfer ownership, so
the line above probably should be:
GVariantCXX
sessionData(g_variant_ref_sink(ag_auth_data_get_login_parameters(m_authData,
extraOptions)), TRANSFER_REF);


Not sure whether that has been broken all along or is due to an API
change. Alberto Mardegan wrote that code in SyncEvolution.

I see a commit which cleans up reference counting in libaccounts.
Perhaps the warning was not seen when writing the count because
ag_auth_data_get_login_parameters returned a GVariant where the ref
count already was too high, so decrementing once too often did no harm.


You are receiving this mail because: