From 1a8dc29ccb84e4b2bcce9f214176ca281043b5b2 Mon Sep 17 00:00:00 2001 From: Elise Chouleur Date: Thu, 20 Nov 2025 20:42:04 +0100 Subject: [PATCH 1/3] Don't raise an error when the close fails because the session is invalid as it means it's already closed Signed-off-by: Elise Chouleur --- cryptoki/src/session/session_management.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cryptoki/src/session/session_management.rs b/cryptoki/src/session/session_management.rs index 40839ad7..76893bff 100644 --- a/cryptoki/src/session/session_management.rs +++ b/cryptoki/src/session/session_management.rs @@ -3,14 +3,14 @@ //! Session management functions use crate::context::Function; -use crate::error::{Result, Rv}; +use crate::error::{Error, Result, Rv, RvError}; use crate::session::{Session, SessionInfo, UserType}; use crate::types::{AuthPin, RawAuthPin}; #[cfg(doc)] use cryptoki_sys::CKF_PROTECTED_AUTHENTICATION_PATH; use cryptoki_sys::CK_SESSION_INFO; -use log::error; +use log::{error, warn}; use secrecy::ExposeSecret; use std::convert::{TryFrom, TryInto}; @@ -27,7 +27,14 @@ impl Drop for Session { } if let Err(err) = close(self) { - error!("Failed to close session: {err}"); + match err { + Error::Pkcs11(RvError::SessionHandleInvalid, _) => + + + + warn!("Failed to close session: Session handle invalid - it may have already been closed."), + _ => error!("Failed to close session: {err}"), + } } } } From 9bd68cbee462018f5d40e89c9e9109284014235e Mon Sep 17 00:00:00 2001 From: Elise Chouleur Date: Thu, 20 Nov 2025 20:48:55 +0100 Subject: [PATCH 2/3] Rust formatting Signed-off-by: Elise Chouleur --- cryptoki/src/session/session_management.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cryptoki/src/session/session_management.rs b/cryptoki/src/session/session_management.rs index 76893bff..7cb51ef5 100644 --- a/cryptoki/src/session/session_management.rs +++ b/cryptoki/src/session/session_management.rs @@ -28,11 +28,9 @@ impl Drop for Session { if let Err(err) = close(self) { match err { - Error::Pkcs11(RvError::SessionHandleInvalid, _) => - - - - warn!("Failed to close session: Session handle invalid - it may have already been closed."), + Error::Pkcs11(RvError::SessionHandleInvalid, _) => { + warn!("Failed to close session: Session handle invalid - it may have already been closed."); + } _ => error!("Failed to close session: {err}"), } } From 43551e619085d07880c6501f95b73f029164fdd0 Mon Sep 17 00:00:00 2001 From: Elise Chouleur Date: Thu, 20 Nov 2025 20:54:47 +0100 Subject: [PATCH 3/3] better message Signed-off-by: Elise Chouleur --- cryptoki/src/session/session_management.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cryptoki/src/session/session_management.rs b/cryptoki/src/session/session_management.rs index 7cb51ef5..eb96b0f1 100644 --- a/cryptoki/src/session/session_management.rs +++ b/cryptoki/src/session/session_management.rs @@ -29,7 +29,7 @@ impl Drop for Session { if let Err(err) = close(self) { match err { Error::Pkcs11(RvError::SessionHandleInvalid, _) => { - warn!("Failed to close session: Session handle invalid - it may have already been closed."); + warn!("Failed to close session: The specified session handle is invalid, the session must be already closed."); } _ => error!("Failed to close session: {err}"), }