By inspection of the source code, _ag_account_local_value and _ag_account_global_value appear to expect to be passed a GValue initialized to store a string (G_TYPE_STRING). However, before reaching the code path that issues this message: DEBUG ("no " MC_IDENTITY_KEY " found, synthesising one:"); the GValue has been unset with g_value_unset() (true since commit b29f2a85), which returns it to an all-zeroes state, in which it needs to be re-initialized with g_value_init() to be used. I believe one correct fix is to insert a call to g_value_init (&value, G_TYPE_STRING); just after that debug message is emitted. Another possibility would be to change this code added by b29f2a85: @@ -885,6 +885,10 @@ _ag_accountid_to_mc_key (McdAccountManagerSso *sso, g_value_unset (&value); return uid; } + else + { + g_value_unset (&value); + } if (!create) return NULL; into: g_value_unset (&value); return uid; } else if (!create) { g_value_unset (&value); return NULL; }
You're right. How does this look?
Looks good to me, but note that I have only read the code, not run it :-)
The g_value_init fixes the problem. I would say ship it.
(In reply to comment #3) > The g_value_init fixes the problem. I would say ship it. Merged to master, not released yet.
Will be fixed in 5.13.0 whenever that gets released, so I'm going to close this.
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.