summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/softoken/pkcs11.c
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-12-07 10:20:41 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-12-07 10:20:41 +0100
commit0fddf6e728ddea66a463e1ccd007aa9d48498905 (patch)
tree65e28a16bbfcf1747ca41a6a808136ee578735d9 /security/nss/lib/softoken/pkcs11.c
parent210d6a87a2759887ce286288ab0815cbd0439e5a (diff)
parent18159927e8f37a1858f9757803b20744fcfff505 (diff)
downloadUXP-0fddf6e728ddea66a463e1ccd007aa9d48498905.tar
UXP-0fddf6e728ddea66a463e1ccd007aa9d48498905.tar.gz
UXP-0fddf6e728ddea66a463e1ccd007aa9d48498905.tar.lz
UXP-0fddf6e728ddea66a463e1ccd007aa9d48498905.tar.xz
UXP-0fddf6e728ddea66a463e1ccd007aa9d48498905.zip
Merge branch 'release' into Pale_Moon-release
Diffstat (limited to 'security/nss/lib/softoken/pkcs11.c')
-rw-r--r--security/nss/lib/softoken/pkcs11.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/security/nss/lib/softoken/pkcs11.c b/security/nss/lib/softoken/pkcs11.c
index 7dd4f7ee9..7f0adf82f 100644
--- a/security/nss/lib/softoken/pkcs11.c
+++ b/security/nss/lib/softoken/pkcs11.c
@@ -2674,8 +2674,9 @@ sftk_CloseAllSessions(SFTKSlot *slot, PRBool logout)
} else {
SKIP_AFTER_FORK(PZ_Unlock(lock));
}
- if (session)
- sftk_FreeSession(session);
+ if (session) {
+ sftk_DestroySession(session);
+ }
} while (session != NULL);
}
return CKR_OK;
@@ -3910,8 +3911,6 @@ NSC_CloseSession(CK_SESSION_HANDLE hSession)
if (sftkqueue_is_queued(session, hSession, slot->head, slot->sessHashSize)) {
sessionFound = PR_TRUE;
sftkqueue_delete(session, hSession, slot->head, slot->sessHashSize);
- session->refCount--; /* can't go to zero while we hold the reference */
- PORT_Assert(session->refCount > 0);
}
PZ_Unlock(lock);
@@ -3932,6 +3931,8 @@ NSC_CloseSession(CK_SESSION_HANDLE hSession)
if (session->info.flags & CKF_RW_SESSION) {
(void)PR_ATOMIC_DECREMENT(&slot->rwSessionCount);
}
+ sftk_DestroySession(session);
+ session = NULL;
}
sftk_FreeSession(session);