diff options
Diffstat (limited to 'security/nss/lib/pki/trustdomain.c')
-rw-r--r-- | security/nss/lib/pki/trustdomain.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/security/nss/lib/pki/trustdomain.c b/security/nss/lib/pki/trustdomain.c index 95aad81b9..9f74c0033 100644 --- a/security/nss/lib/pki/trustdomain.c +++ b/security/nss/lib/pki/trustdomain.c @@ -52,7 +52,7 @@ static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$"; #include "cert.h" #include "pki3hack.h" - +#include "pk11pub.h" #include "nssrwlk.h" #define NSSTRUSTDOMAIN_DEFAULT_CACHE_SIZE 32 @@ -167,9 +167,18 @@ nssTrustDomain_GetActiveSlots ( NSSRWLock_UnlockRead(td->tokensLock); count = 0; for (tp = tokens; *tp; tp++) { - slots[count++] = nssToken_GetSlot(*tp); + NSSSlot * slot = nssToken_GetSlot(*tp); + if (!PK11_IsDisabled(slot->pk11slot)) { + slots[count++] = slot; + } else { + nssSlot_Destroy(slot); + } } nss_ZFreeIf(tokens); + if (!count) { + nss_ZFreeIf(slots); + slots = NULL; + } return slots; } |