diff src/libpam/environ.rs @ 139:33b9622ed6d2

Remove redundant memory management in nonstick::libpam; fix UB. - Uses the libpam-sys-helpers BinaryPayload / OwnedBinaryPayload structs to handle memory management and parsing for Linux-PAM binary messages. - Gets rid of the (technically) undefined behavior in PtrPtrVec due to pointer provenance. - Don't check for malloc failing. It won't, even if it does. - Formatting/cleanups/etc.
author Paul Fisher <paul@pfish.zone>
date Thu, 03 Jul 2025 23:57:49 -0400
parents 80c07e5ab22f
children a508a69c068a
line wrap: on
line diff
--- a/src/libpam/environ.rs	Thu Jul 03 20:55:40 2025 -0400
+++ b/src/libpam/environ.rs	Thu Jul 03 23:57:49 2025 -0400
@@ -211,7 +211,7 @@
     }
 
     fn env_list(strings: &[&'static str]) -> EnvList<'static> {
-        let ptrs: NonNull<Option<CHeapString>> = memory::calloc(strings.len() + 1).unwrap();
+        let ptrs: NonNull<Option<CHeapString>> = memory::calloc(strings.len() + 1);
         unsafe {
             for (idx, &text) in strings.iter().enumerate() {
                 ptr::write(