From 9cf5576b327105a7431c1ff62c0f04056b0465cf Mon Sep 17 00:00:00 2001 From: "kirk.erickson%sun.com" Date: Sun, 14 Apr 2002 14:07:12 +0000 Subject: [PATCH] Resolves 126087. Backed out of slot->keyCount atomic instructions. --- security/nss/lib/pk11wrap/pk11skey.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/security/nss/lib/pk11wrap/pk11skey.c b/security/nss/lib/pk11wrap/pk11skey.c index f5be7d61bc26..fd1cd3b145c0 100644 --- a/security/nss/lib/pk11wrap/pk11skey.c +++ b/security/nss/lib/pk11wrap/pk11skey.c @@ -165,12 +165,9 @@ pk11_getKeyFromList(PK11SlotInfo *slot) { if (slot->freeSymKeysHead) { symKey = slot->freeSymKeysHead; slot->freeSymKeysHead = symKey->next; - PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);) - PR_AtomicDecrement(&slot->keyCount); - } - else { - PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);) + slot->keyCount--; } + PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);) if (symKey) { symKey->next = NULL; if ((symKey->series != slot->series) || (!symKey->sessionOwner)) @@ -264,15 +261,15 @@ PK11_FreeSymKey(PK11SymKey *symKey) PORT_Free(symKey->data.data); } slot = symKey->slot; + PK11_USE_THREADS(PZ_Lock(slot->freeListLock);) if (slot->keyCount < slot->maxKeyCount) { - PK11_USE_THREADS(PZ_Lock(slot->freeListLock);) symKey->next = slot->freeSymKeysHead; slot->freeSymKeysHead = symKey; + slot->keyCount++; symKey->slot = NULL; - PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);) - PR_AtomicIncrement(&slot->keyCount); freeit = PR_FALSE; } + PK11_USE_THREADS(PZ_Unlock(slot->freeListLock);) if (freeit) { pk11_CloseSession(symKey->slot, symKey->session, symKey->sessionOwner);