Summary: | invalid reference transfer on online account authentication | ||
---|---|---|---|
Product: | SyncEvolution | Reporter: | renato filho <renatox> |
Component: | SyncEvolution | Assignee: | SyncEvolution Community <syncevolution-issues> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | syncevolution-issues |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
renato filho
2016-11-01 12:35:15 UTC
Fix included in master branch: commit 59372771027ea98f59e42b2390263b077a71876c Author: Patrick Ohly <patrick.ohly@intel.com> Date: Thu Nov 3 00:50:26 2016 -0700 SignonAuthProvider: fix ref counting issue The account data was unreferenced once too often, or rather, a suitable ref count increase was missing. A debug build of glib detects that ("GLib: g_variant_unref: assertion 'value->ref_count > 0' failed"), but without that check the code might also crash. diff --git a/src/backends/signon/signon-accounts.cpp b/src/backends/signon/signon-accounts.cpp index 488a0e6..3ea9074 100644 --- a/src/backends/signon/signon-accounts.cpp +++ b/src/backends/signon/signon-accounts.cpp @@ -165,7 +165,7 @@ private: // so we have to use the "steal" variant to enable that assignment. GVariantStealCXX resultData; GErrorCXX gerror; - GVariantCXX sessionData(ag_auth_data_get_login_parameters(m_authData, extraOptions), TRANSFER_REF); + GVariantCXX sessionData(g_variant_ref_sink(ag_auth_data_get_login_parameters(m_authData, extraOptions)), TRANSFER_REF); const char *mechanism = ag_auth_data_get_mechanism(m_authData); PlainGStr buffer(g_variant_print(sessionData, true)); SE_LOG_DEBUG(NULL, "asking for authentication with method %s, mechanism %s and parameters %s", |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.