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.