diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2016-11-03 00:50:26 -0700 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@intel.com> | 2016-11-03 00:50:26 -0700 |
commit | 59372771027ea98f59e42b2390263b077a71876c (patch) | |
tree | 3afd70c8d14b604709691f783dc89205f6ef0eae | |
parent | 7f3ec05c05b752aa58ff893aae1754a43af16f49 (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.cpp | 2 |
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", |