Mercurial > crates > nonstick
comparison libpam-sys/libpam-sys-test/build.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 | 999bf07efbcb |
children | 4b3a5095f68c |
comparison
equal
deleted
inserted
replaced
138:999bf07efbcb | 139:33b9622ed6d2 |
---|---|
26 ignore_consts: vec![ | 26 ignore_consts: vec![ |
27 "__LINUX_PAM__", | 27 "__LINUX_PAM__", |
28 "__LINUX_PAM_MINOR__", | 28 "__LINUX_PAM_MINOR__", |
29 "PAM_AUTHTOK_RECOVER_ERR", | 29 "PAM_AUTHTOK_RECOVER_ERR", |
30 ], | 30 ], |
31 ..Default::default() | |
32 }, | 31 }, |
33 PamImpl::OpenPam => TestConfig { | 32 PamImpl::OpenPam => TestConfig { |
34 headers: vec![ | 33 headers: vec![ |
35 "<security/pam_types.h>", | 34 "<security/pam_types.h>", |
36 "<security/openpam.h>", | 35 "<security/openpam.h>", |
93 }) | 92 }) |
94 .filter(|&item| config.should_check_const(item)) | 93 .filter(|&item| config.should_check_const(item)) |
95 .map(|item| { | 94 .map(|item| { |
96 let name = item.ident.to_string(); | 95 let name = item.ident.to_string(); |
97 if let Some(stripped) = name.strip_prefix(&format!("{REDIR_FD}_")) { | 96 if let Some(stripped) = name.strip_prefix(&format!("{REDIR_FD}_")) { |
98 format!("assert_eq!(generated::{name} as i32, libpam_sys::{REDIR_FD}::{stripped}.into());"); | 97 format!("\ |
99 format!("assert_eq!((generated::{name} as i32).try_into(), Ok(libpam_sys::{REDIR_FD}::{stripped}));") | 98 assert_eq!(generated::{name} as i32, libpam_sys::{REDIR_FD}::{stripped}.into());\ |
99 assert_eq!((generated::{name} as i32).try_into(), Ok(libpam_sys::{REDIR_FD}::{stripped}));\ | |
100 ") | |
100 } else { | 101 } else { |
101 format!("assert_eq!(generated::{name} as i32, libpam_sys::{name});") | 102 format!("assert_eq!(generated::{name} as i32, libpam_sys::{name});") |
102 } | 103 } |
103 }), | 104 }), |
104 ); | 105 ); |