Mercurial > crates > nonstick
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(