diff options
Diffstat (limited to 'lib/pkcs11.c')
-rw-r--r-- | lib/pkcs11.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pkcs11.c b/lib/pkcs11.c index de5309b296..2ef0e3e025 100644 --- a/lib/pkcs11.c +++ b/lib/pkcs11.c @@ -1617,7 +1617,13 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input, info, flags); if (ret < 0) { gnutls_assert(); - return ret; + pkcs11_close_session(&sinfo); + + /* treat the error as fatal only if + * the token requires login */ + if (l_tinfo.flags & CKF_LOGIN_REQUIRED) + return ret; + continue; } ret = |