diff options
Diffstat (limited to 'lib/vtls')
| -rw-r--r-- | lib/vtls/nss.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c index e1a122947..0e57ab45d 100644 --- a/lib/vtls/nss.c +++ b/lib/vtls/nss.c @@ -603,7 +603,7 @@ fail:  static CURLcode nss_load_key(struct connectdata *conn, int sockindex,                               char *key_file)  { -  PK11SlotInfo *slot; +  PK11SlotInfo *slot, *tmp;    SECStatus status;    CURLcode result;    struct ssl_connect_data *ssl = conn->ssl; @@ -622,7 +622,9 @@ static CURLcode nss_load_key(struct connectdata *conn, int sockindex,      return CURLE_SSL_CERTPROBLEM;    /* This will force the token to be seen as re-inserted */ -  SECMOD_WaitForAnyTokenEvent(mod, 0, 0); +  tmp = SECMOD_WaitForAnyTokenEvent(mod, 0, 0); +  if(tmp) +    PK11_FreeSlot(tmp);    PK11_IsPresent(slot);    status = PK11_Authenticate(slot, PR_TRUE, SSL_SET_OPTION(key_passwd));  | 
