[gnome-keyring] [secret-store] Fix regression: secret value not stored properly.



commit 912891b83b297ac6af2b62f6c1f8c31b1d3cc8bd
Author: Stef Walter <stef memberwebs com>
Date:   Sat Feb 13 04:16:50 2010 +0000

    [secret-store] Fix regression: secret value not stored properly.

 pkcs11/secret-store/gck-secret-item.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
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);
 		}
 	}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]