From c45c90a337a3126f8e37031a552c23578d298c0b Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Mon, 20 Apr 2015 16:18:11 +0200 Subject: [PATCH] sc_pkcs11_close_all_sessions: close all sessions even if closing one fails --- src/pkcs11/pkcs11-session.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pkcs11/pkcs11-session.c b/src/pkcs11/pkcs11-session.c index e6edf25c..143ab56e 100644 --- a/src/pkcs11/pkcs11-session.c +++ b/src/pkcs11/pkcs11-session.c @@ -120,17 +120,17 @@ static CK_RV sc_pkcs11_close_session(CK_SESSION_HANDLE hSession) * the global lock held */ CK_RV sc_pkcs11_close_all_sessions(CK_SLOT_ID slotID) { - CK_RV rv = CKR_OK; + CK_RV rv = CKR_OK, error; struct sc_pkcs11_session *session; unsigned int i; sc_log(context, "real C_CloseAllSessions(0x%lx) %d", slotID, list_size(&sessions)); for (i = 0; i < list_size(&sessions); i++) { session = list_get_at(&sessions, i); if (session->slot->id == slotID) - if ((rv = sc_pkcs11_close_session(session->handle)) != CKR_OK) - return rv; + if ((error = sc_pkcs11_close_session(session->handle)) != CKR_OK) + rv = error; } - return CKR_OK; + return rv; } CK_RV C_CloseSession(CK_SESSION_HANDLE hSession)