infinite recursion when token reinserted

RESOLVED DUPLICATE of bug 212112

Status

NSS
Libraries
--
critical
RESOLVED DUPLICATE of bug 212112
14 years ago
14 years ago

People

(Reporter: Jamie Nicolson, Assigned: Wan-Teh Chang)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

14 years ago
When I remove and reinsert a smartcard, I assert with the following stacktrace.
We are trying to lock the same lock twice. This is happening because we have
recursed, and would have recursed infinitely if not for the check in PR_Lock.

The recursion seems to start with nssSLot_IsTokenPresent, which eventually calls
itself.


PR_Lock(PRLock * 0x01721978) line 235 + 40 bytes
nssTrustDomain_RemoveTokenCertsFromCache(NSSTrustDomainStr * 0x01720878,
NSSTokenStr * 0x01725a10) line 486 + 15 bytes
nssToken_NotifyCertsNotVisible(NSSTokenStr * 0x01725a10) line 292 + 16 bytes
nssSlot_IsTokenPresent(NSSSlotStr * 0x01726440) line 338 + 12 bytes
nssSlot_GetToken(NSSSlotStr * 0x01726440) line 381 + 9 bytes
nssTrustDomain_FindTrustForCertificate(NSSTrustDomainStr * 0x01720878,
NSSCertificateStr * 0x01736620) line 1191 + 11 bytes
nssTrust_GetCERTCertTrustForCert(NSSCertificateStr * 0x01736620,
CERTCertificateStr * 0x0172d488) line 537 + 13 bytes
fill_CERTCertificateFields(NSSCertificateStr * 0x01736620, CERTCertificateStr *
0x0172d488, int 0x00000001) line 690 + 13 bytes
stan_GetCERTCertificate(NSSCertificateStr * 0x01736620, int 0x00000001) line 718
+ 17 bytes
STAN_ForceCERTCertificateUpdate(NSSCertificateStr * 0x01736620) line 734 + 11 bytes
nssTrustDomain_RemoveTokenCertsFromCache(NSSTrustDomainStr * 0x01720878,
NSSTokenStr * 0x01725a10) line 492 + 15 bytes
nssToken_NotifyCertsNotVisible(NSSTokenStr * 0x01725a10) line 292 + 16 bytes
nssSlot_IsTokenPresent(NSSSlotStr * 0x01726440) line 338 + 12 bytes
nssToken_IsPresent(NSSTokenStr * 0x01725a10) line 1620 + 12 bytes
pk11_IsPresentCertLoad(PK11SlotInfoStr * 0x0171d178, int 0x00000001) line 2052 +
15 bytes
PK11_IsPresent(PK11SlotInfoStr * 0x0171d178) line 2101 + 11 bytes
PK11_FindSlotByName(char * 0x01746e90) line 601 + 9 bytes
(Assignee)

Comment 1

14 years ago
This is a known bug and has been fixed on the NSS tip (3.9
not yet released), the NSS 3.7 branch (3.7.8), and the
NSS 3.8 branch (3.8.2, not yet released).  So, an "upgrade"
from 3.7.8 to 3.8 will introduce this regression.

We should release NSS 3.8.2 as soon as possible.

By the way, the symptom in an optimized build is usually a
recursive deadlock, not infinite recursion.

*** This bug has been marked as a duplicate of 212112 ***
Status: NEW → RESOLVED
Last Resolved: 14 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.