Comment # 1
on bug 98529
from Patrick Ohly
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",