diff options
author | wtc%netscape.com <devnull@localhost> | 2003-08-01 02:02:47 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 2003-08-01 02:02:47 +0000 |
commit | fe48088a7ad5d03406426c5a45b22a611686325c (patch) | |
tree | 6d05f97a737c7420e6115e43ee986d1123696164 | |
parent | d4d9f885d9a22b333199ed6e47dddb40e89d6f2d (diff) | |
download | nss-hg-fe48088a7ad5d03406426c5a45b22a611686325c.tar.gz |
Bugzilla bug 214695: fixed incorrect use of PR_AtomicDecrement on reference
counts. The reference count should not be read "naked". Instead, we
should simply use the return value of PR_AtomicDecrement for the result of
the decrement.
Modified Files: dev/devmod.c dev/devslot.c dev/devtoken.c pki/certificate.c
pki/pkibase.c
-rw-r--r-- | security/nss/lib/dev/devmod.c | 3 | ||||
-rw-r--r-- | security/nss/lib/dev/devslot.c | 3 | ||||
-rw-r--r-- | security/nss/lib/dev/devtoken.c | 3 | ||||
-rw-r--r-- | security/nss/lib/pki/certificate.c | 3 | ||||
-rw-r--r-- | security/nss/lib/pki/pkibase.c | 3 |
5 files changed, 5 insertions, 10 deletions
diff --git a/security/nss/lib/dev/devmod.c b/security/nss/lib/dev/devmod.c index 7bd0dd404..43c41bfd0 100644 --- a/security/nss/lib/dev/devmod.c +++ b/security/nss/lib/dev/devmod.c @@ -714,8 +714,7 @@ nssModule_Destroy ( ) { PRUint32 i, numSlots; - PR_AtomicDecrement(&mod->base.refCount); - if (mod->base.refCount == 0) { + if (PR_AtomicDecrement(&mod->base.refCount) == 0) { if (mod->numSlots == 0) { (void)nssModule_Unload(mod); return nssArena_Destroy(mod->base.arena); diff --git a/security/nss/lib/dev/devslot.c b/security/nss/lib/dev/devslot.c index 48bce99b2..e8fbee38d 100644 --- a/security/nss/lib/dev/devslot.c +++ b/security/nss/lib/dev/devslot.c @@ -178,8 +178,7 @@ nssSlot_Destroy ( ) { if (slot) { - PR_AtomicDecrement(&slot->base.refCount); - if (slot->base.refCount == 0) { + if (PR_AtomicDecrement(&slot->base.refCount) == 0) { PZ_DestroyLock(slot->base.lock); #ifdef PURE_STAN_BUILD nssToken_Destroy(slot->token); diff --git a/security/nss/lib/dev/devtoken.c b/security/nss/lib/dev/devtoken.c index de1613c3d..0757bb4ee 100644 --- a/security/nss/lib/dev/devtoken.c +++ b/security/nss/lib/dev/devtoken.c @@ -152,8 +152,7 @@ nssToken_Destroy ( ) { if (tok) { - PR_AtomicDecrement(&tok->base.refCount); - if (tok->base.refCount == 0) { + if (PR_AtomicDecrement(&tok->base.refCount) == 0) { PZ_DestroyLock(tok->base.lock); nssTokenObjectCache_Destroy(tok->cache); return nssArena_Destroy(tok->base.arena); diff --git a/security/nss/lib/pki/certificate.c b/security/nss/lib/pki/certificate.c index f2707f959..f074e77dd 100644 --- a/security/nss/lib/pki/certificate.c +++ b/security/nss/lib/pki/certificate.c @@ -131,8 +131,7 @@ nssCertificate_Destroy ( } else { nssTrustDomain_LockCertCache(td); } - PR_AtomicDecrement(&c->object.refCount); - if (c->object.refCount == 0) { + if (PR_AtomicDecrement(&c->object.refCount) == 0) { /* --- remove cert and UNLOCK storage --- */ if (cc) { nssCertificateStore_RemoveCertLOCKED(cc->certStore, c); diff --git a/security/nss/lib/pki/pkibase.c b/security/nss/lib/pki/pkibase.c index 3d1d3d949..5ee2a4ee9 100644 --- a/security/nss/lib/pki/pkibase.c +++ b/security/nss/lib/pki/pkibase.c @@ -106,8 +106,7 @@ nssPKIObject_Destroy ( { PRUint32 i; PR_ASSERT(object->refCount > 0); - PR_AtomicDecrement(&object->refCount); - if (object->refCount == 0) { + if (PR_AtomicDecrement(&object->refCount) == 0) { for (i=0; i<object->numInstances; i++) { nssCryptokiObject_Destroy(object->instances[i]); } |