From d820c314c4f5a05dc573ba84c35686282c6de1e7 Mon Sep 17 00:00:00 2001 From: Alessio Di Mauro Date: Wed, 9 Sep 2015 13:16:45 +0200 Subject: [PATCH] Free more. --- ykcs11/ykcs11.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ykcs11/ykcs11.c b/ykcs11/ykcs11.c index a4fe887..5fe09d3 100644 --- a/ykcs11/ykcs11.c +++ b/ykcs11/ykcs11.c @@ -87,6 +87,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_Finalize)( ) { DIN; + CK_ULONG i; + if (pReserved != NULL_PTR) { DBG(("Finalized called with pReserved != NULL")); return CKR_ARGUMENTS_BAD; @@ -97,6 +99,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_Finalize)( return CKR_CRYPTOKI_NOT_INITIALIZED; } + for (i = 0; i < n_slots; i++) { + destroy_token(slots + i); + } memset(slots, 0, sizeof(slots)); ykpiv_done(piv_state); // TODO: this calls disconnect... @@ -547,6 +552,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)( } } + free(cert_ids); + cert_ids = NULL; + session.handle = YKCS11_SESSION_ID; // TODO: KEEP TRACK OF THE APPLICATION (possble to steal a session?)