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()