gnome-keyring/gnome-keyring-2.29.90-secre...

34 lines
1.3 KiB
Diff

From 912891b83b297ac6af2b62f6c1f8c31b1d3cc8bd Mon Sep 17 00:00:00 2001
From: Stef Walter <stef@memberwebs.com>
Date: Sat, 13 Feb 2010 04:16:50 +0000
Subject: [secret-store] Fix regression: secret value not stored properly.
---
diff --git a/pkcs11/secret-store/gck-secret-item.c b/pkcs11/secret-store/gck-secret-item.c
index b0c5659..5c77723 100644
--- a/pkcs11/secret-store/gck-secret-item.c
+++ b/pkcs11/secret-store/gck-secret-item.c
@@ -141,6 +141,7 @@ factory_create_item (GckSession *session, GckTransaction *transaction,
CK_ATTRIBUTE *attr;
gboolean is_token;
gchar *identifier;
+ CK_ULONG i;
g_return_val_if_fail (GCK_IS_TRANSACTION (transaction), NULL);
g_return_val_if_fail (attrs || !n_attrs, NULL);
@@ -175,7 +176,11 @@ factory_create_item (GckSession *session, GckTransaction *transaction,
gck_transaction_fail (transaction, CKR_TEMPLATE_INCONSISTENT);
return NULL;
} else {
- gck_attributes_consume (attrs, n_attrs, CKA_ID, G_MAXULONG);
+ gck_attributes_consume (attrs, n_attrs, CKA_ID, CKA_TOKEN, G_MAXULONG);
+ for (i = 0; i < n_attrs && !gck_transaction_get_failed (transaction); ++i) {
+ if (!gck_attribute_consumed (&attrs[i]))
+ gck_object_set_attribute (GCK_OBJECT (item), session, transaction, &attrs[i]);
+ }
return g_object_ref (item);
}
}
--
cgit v0.8.3.1