diff options
author | Stef Walter <stef@memberwebs.com> | 2009-12-14 03:22:25 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2009-12-14 03:22:25 +0000 |
commit | cbb8aaddd27041ec07eefb3193489d63abdab6e4 (patch) | |
tree | ca568d106ca29e9f3f76969e25e3e2f9f77366c3 /pkcs11/secret-store | |
parent | a7f3c50bfac5512ffa0a39325fa4dfe14d8bf879 (diff) | |
download | gnome-keyring-cbb8aaddd27041ec07eefb3193489d63abdab6e4.tar.gz |
[pkcs11] Fix some shutdown ordering problems.
Diffstat (limited to 'pkcs11/secret-store')
-rw-r--r-- | pkcs11/secret-store/gck-secret-module.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/pkcs11/secret-store/gck-secret-module.c b/pkcs11/secret-store/gck-secret-module.c index 0e20c3c7..c1a5a9a6 100644 --- a/pkcs11/secret-store/gck-secret-module.c +++ b/pkcs11/secret-store/gck-secret-module.c @@ -343,6 +343,16 @@ gck_secret_module_real_remove_object (GckModule *module, GckTransaction *transac GckSecretModule *self = GCK_SECRET_MODULE (module); GckSecretCollection *collection; + /* Ignore the session keyring credentials */ + if (self->session_credential != NULL && + GCK_OBJECT (self->session_credential) == object) + return; + + /* Ignore the session keyring collection */ + if (self->session_collection != NULL && + GCK_OBJECT (self->session_collection) == object) + return; + /* Removing an item */ if (GCK_IS_SECRET_ITEM (object)) { collection = gck_secret_item_get_collection (GCK_SECRET_ITEM (object)); @@ -360,8 +370,9 @@ gck_secret_module_real_remove_object (GckModule *module, GckTransaction *transac /* No other token objects */ } else { + g_warning ("Trying to remove token object of type '%s' from secret " + "module, but that type is not supported.", G_OBJECT_TYPE_NAME (object)); gck_transaction_fail (transaction, CKR_FUNCTION_NOT_SUPPORTED); - g_return_if_reached (); } } |