summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2016-11-03 00:50:26 -0700
committerPatrick Ohly <patrick.ohly@intel.com>2016-11-03 00:50:26 -0700
commit59372771027ea98f59e42b2390263b077a71876c (patch)
tree3afd70c8d14b604709691f783dc89205f6ef0eae
parent7f3ec05c05b752aa58ff893aae1754a43af16f49 (diff)
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.
-rw-r--r--src/backends/signon/signon-accounts.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backends/signon/signon-accounts.cpp b/src/backends/signon/signon-accounts.cpp
index 488a0e6c..3ea90741 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",