summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian.mcgreer%sun.com <devnull@localhost>2002-04-18 19:26:17 +0000
committerian.mcgreer%sun.com <devnull@localhost>2002-04-18 19:26:17 +0000
commitaa5048716b6130f5e5989b181d6b5d7eacebcd96 (patch)
tree6cf5dd3e21129341fb9a9ca9380c54f8a6d9c77d
parent1a2048864243ea48ee0caacc03b9da5cea1c6966 (diff)
downloadnss-hg-aa5048716b6130f5e5989b181d6b5d7eacebcd96.tar.gz
two fixes for certs with multiple instances
-rw-r--r--security/nss/lib/pki/pkibase.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/security/nss/lib/pki/pkibase.c b/security/nss/lib/pki/pkibase.c
index 75e3c77e0..74e14e4cd 100644
--- a/security/nss/lib/pki/pkibase.c
+++ b/security/nss/lib/pki/pkibase.c
@@ -141,6 +141,14 @@ nssPKIObject_AddInstance
nssCryptokiObject *,
object->numInstances + 1);
} else {
+ PRUint32 i;
+ for (i=0; i<object->numInstances; i++) {
+ if (nssCryptokiObject_Equal(object->instances[i], instance)) {
+ PZ_Unlock(object->lock);
+ nssCryptokiObject_Destroy(instance);
+ return PR_SUCCESS;
+ }
+ }
object->instances = nss_ZREALLOCARRAY(object->instances,
nssCryptokiObject *,
object->numInstances + 1);
@@ -654,6 +662,7 @@ nssPKIObjectCollection_AddObject
}
node->haveObject = PR_TRUE;
node->object = nssPKIObject_AddRef(object);
+ (*collection->getUIDFromObject)(object, node->uid);
PR_INIT_CLIST(&node->link);
PR_INSERT_BEFORE(&node->link, &collection->head);
collection->size++;