From c64e52dc46a040b69b37100525bbf4698cca854f Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Wed, 3 Aug 2011 14:28:47 +0200 Subject: [PATCH] Avoid a warning when trying to store a NULL value e17b83fec8f01ca6977cb4fe259a83634aa90b26 only fixed the !ENABLE_GNOME_KEYRING case. https://bugs.freedesktop.org/show_bug.cgi?id=39796 --- src/mcd-account-manager-default.c | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/mcd-account-manager-default.c b/src/mcd-account-manager-default.c index 86e0abc..deae163 100644 --- a/src/mcd-account-manager-default.c +++ b/src/mcd-account-manager-default.c @@ -401,15 +401,30 @@ _set (const McpAccountStorage *self, const gchar *val) { McdAccountManagerDefault *amd = MCD_ACCOUNT_MANAGER_DEFAULT (self); +#if ENABLE_GNOME_KEYRING + gboolean secret; +#endif amd->save = TRUE; #if ENABLE_GNOME_KEYRING /* if we have a keyring, secrets are segregated */ - if (mcp_account_manager_parameter_is_secret (am, account, key)) - g_key_file_set_value (amd->secrets, account, key, val); + secret = mcp_account_manager_parameter_is_secret (am, account, key); + + if (val != NULL) + { + if (secret) + g_key_file_set_value (amd->secrets, account, key, val); + else + g_key_file_set_value (amd->keyfile, account, key, val); + } else - g_key_file_set_value (amd->keyfile, account, key, val); + { + if (secret) + g_key_file_remove_key (amd->secrets, account, key, NULL); + else + g_key_file_remove_key (amd->keyfile, account, key, NULL); + } /* if we removed the account before, it now exists again, so... */ g_hash_table_remove (amd->removed_accounts, account); -- 1.7.4.1