summaryrefslogtreecommitdiff
path: root/pkcs11/secret-store
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2009-12-14 03:22:25 +0000
committerStef Walter <stef@memberwebs.com>2009-12-14 03:22:25 +0000
commitcbb8aaddd27041ec07eefb3193489d63abdab6e4 (patch)
treeca568d106ca29e9f3f76969e25e3e2f9f77366c3 /pkcs11/secret-store
parenta7f3c50bfac5512ffa0a39325fa4dfe14d8bf879 (diff)
downloadgnome-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.c13
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 ();
}
}