diff options
Diffstat (limited to 'pkcs11.c')
-rw-r--r-- | pkcs11.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -1593,6 +1593,10 @@ static CK_RV p11_session_delete(const CK_SESSION_HANDLE session_handle) p11_sessions = session->link; p11_session_free(session); + /* Deleting last session also logs us out */ + if (p11_sessions == NULL) + logged_in_as = not_logged_in; + fail: sqlite3_finalize(q); return rv; @@ -1621,6 +1625,8 @@ static CK_RV p11_session_delete_all(void) p11_session_free(session); } + logged_in_as = not_logged_in; + fail: return rv; } @@ -2696,6 +2702,11 @@ CK_RV C_Finalize(CK_VOID_PTR pReserved) rv = mutex_unlock(p11_global_mutex); (void) mutex_destroy(p11_global_mutex); p11_global_mutex = NULL; + +#if USE_POSIX + initialized_pid = 0; +#endif + return rv; fail: |