From 8a2758e5faa8c0d618a25b59b0725a82984bb5f1 Mon Sep 17 00:00:00 2001 From: Maximiliano Sandoval Date: Tue, 1 Sep 2026 21:19:24 +0200 Subject: [PATCH] pam: Use Box::from_raw The password comes from a Box::into_raw so we reconstruct the Box to avoid it from leaking. See https://doc.rust-lang.org/std/boxed/struct.Box.html#method.into_raw. --- pam/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pam/src/lib.rs b/pam/src/lib.rs index 4e693b90..153cd7e4 100644 --- a/pam/src/lib.rs +++ b/pam/src/lib.rs @@ -245,7 +245,7 @@ pub unsafe extern "C" fn pam_sm_open_session( return PAM_SUCCESS; } - let password = unsafe { &*(password_ptr as *const Zeroizing>) }; + let password = unsafe { Box::from_raw(password_ptr.cast::>>().cast_mut()) }; tracing::debug!( "Retrieved stashed password of length {} bytes", password.len()