summaryrefslogtreecommitdiff
path: root/security/nss/lib/pki/trustdomain.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/lib/pki/trustdomain.c')
-rw-r--r--security/nss/lib/pki/trustdomain.c13
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;
}