From fba28f19754f62b5227650143d5441fc86d4c7d7 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Wed, 25 Apr 2018 21:33:33 +0200 Subject: Revert "Update NSS to 3.35-RTM" This reverts commit f1a0f0a56fdd0fc39f255174ce08c06b91c66c94. --- security/nss/lib/pk11wrap/pk11obj.c | 39 +++---------------------------------- 1 file changed, 3 insertions(+), 36 deletions(-) (limited to 'security/nss/lib/pk11wrap/pk11obj.c') diff --git a/security/nss/lib/pk11wrap/pk11obj.c b/security/nss/lib/pk11wrap/pk11obj.c index b97caddd4..47c56154d 100644 --- a/security/nss/lib/pk11wrap/pk11obj.c +++ b/security/nss/lib/pk11wrap/pk11obj.c @@ -201,6 +201,7 @@ PK11_GetAttributes(PLArenaPool *arena, PK11SlotInfo *slot, /* make pedantic happy... note that it's only used arena != NULL */ void *mark = NULL; CK_RV crv; + PORT_Assert(slot->session != CK_INVALID_SESSION); if (slot->session == CK_INVALID_SESSION) return CKR_SESSION_HANDLE_INVALID; @@ -1505,7 +1506,6 @@ PK11_FindGenericObjects(PK11SlotInfo *slot, CK_OBJECT_CLASS objClass) /* initialize it */ obj->slot = PK11_ReferenceSlot(slot); obj->objectID = objectIDs[i]; - obj->owner = PR_FALSE; obj->next = NULL; obj->prev = NULL; @@ -1586,9 +1586,6 @@ PK11_DestroyGenericObject(PK11GenericObject *object) PK11_UnlinkGenericObject(object); if (object->slot) { - if (object->owner) { - PK11_DestroyObject(object->slot, object->objectID); - } PK11_FreeSlot(object->slot); } PORT_Free(object); @@ -1630,9 +1627,8 @@ PK11_DestroyGenericObjects(PK11GenericObject *objects) * Hand Create a new object and return the Generic object for our new object. */ PK11GenericObject * -pk11_CreateGenericObjectHelper(PK11SlotInfo *slot, - const CK_ATTRIBUTE *pTemplate, - int count, PRBool token, PRBool owner) +PK11_CreateGenericObject(PK11SlotInfo *slot, const CK_ATTRIBUTE *pTemplate, + int count, PRBool token) { CK_OBJECT_HANDLE objectID; PK11GenericObject *obj; @@ -1656,40 +1652,11 @@ pk11_CreateGenericObjectHelper(PK11SlotInfo *slot, /* initialize it */ obj->slot = PK11_ReferenceSlot(slot); obj->objectID = objectID; - obj->owner = owner; obj->next = NULL; obj->prev = NULL; return obj; } -/* This is the classic interface. Applications would call this function to - * create new object that would not be destroyed later. This lead to resource - * leaks (and thus memory leaks in the PKCS #11 module). To solve this we have - * a new interface that automatically marks objects created on the fly to be - * destroyed later. - * The old interface is preserved because applications like Mozilla purposefully - * leak the reference to be found later with PK11_FindGenericObjects. New - * applications should use the new interface PK11_CreateManagedGenericObject */ -PK11GenericObject * -PK11_CreateGenericObject(PK11SlotInfo *slot, const CK_ATTRIBUTE *pTemplate, - int count, PRBool token) -{ - return pk11_CreateGenericObjectHelper(slot, pTemplate, count, token, - PR_FALSE); -} - -/* Use this interface. It will automatically destroy any temporary objects - * (token = PR_FALSE) when the PK11GenericObject is freed. Permanent objects still - * need to be destroyed by hand with PK11_DestroyTokenObject. - */ -PK11GenericObject * -PK11_CreateManagedGenericObject(PK11SlotInfo *slot, - const CK_ATTRIBUTE *pTemplate, int count, PRBool token) -{ - return pk11_CreateGenericObjectHelper(slot, pTemplate, count, token, - !token); -} - /* * Change an attribute on a raw object */ -- cgit v1.2.3