summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2022-12-15 16:27:27 -0500
committerRay Strode <rstrode@redhat.com>2022-12-16 23:28:15 -0500
commit0907502aaf472d74438bf5a45d77af547be469b3 (patch)
tree286f6dbd29b5a3107a3a981e3a36de8912d95756
parentd3f3e2cee1c5aff89ba41570e0bdb6fbefcee192 (diff)
downloadgnome-online-accounts-0907502aaf472d74438bf5a45d77af547be469b3.tar.gz
goakerberosidentity: Fix crash when erasing credentials
Right now when erasing an identity we erase the active credentials first and then the inactive ones. We neglect to take the active one out of the hash table, though, so it gets destroyed twice. This commit fixes that.
-rw-r--r--src/goaidentity/goakerberosidentity.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/goaidentity/goakerberosidentity.c b/src/goaidentity/goakerberosidentity.c
index bc60796..46a6fb2 100644
--- a/src/goaidentity/goakerberosidentity.c
+++ b/src/goaidentity/goakerberosidentity.c
@@ -1719,6 +1719,8 @@ goa_kerberos_identity_erase (GoaKerberosIdentity *self, GError **error)
self->active_credentials_cache_name);
g_debug ("GoaKerberosIdentity: Destroying active credentials cache %s", self->active_credentials_cache_name);
error_code = krb5_cc_destroy (self->kerberos_context, credentials_cache);
+ g_hash_table_remove (self->credentials_caches, self->active_credentials_cache_name);
+
g_clear_pointer (&self->active_credentials_cache_name, g_free);
if (error_code != 0)