Mercurial > crates > nonstick
comparison src/libpam/module.rs @ 141:a508a69c068a
Remove a lot of Results from functions.
Many functions are documented to only return failing Results when given
improper inputs or when there is a memory allocation failure (which
can be verified by looking at the source). In cases where we know our
input is correct, we don't need to check for memory allocation errors
for the same reason that Rust doesn't do so when you, e.g., create a
new Vec.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Sat, 05 Jul 2025 17:16:56 -0400 |
parents | a2676475e86b |
children | ebb71a412b58 |
comparison
equal
deleted
inserted
replaced
140:add7228adb2f | 141:a508a69c068a |
---|---|
40 #[macro_export] | 40 #[macro_export] |
41 macro_rules! pam_hooks { | 41 macro_rules! pam_hooks { |
42 ($ident:ident) => { | 42 ($ident:ident) => { |
43 mod _pam_hooks_scope { | 43 mod _pam_hooks_scope { |
44 use std::ffi::{c_char, c_int, c_void, CStr}; | 44 use std::ffi::{c_char, c_int, c_void, CStr}; |
45 use $crate::{ErrorCode, Flags, LibPamHandle, PamModule}; | 45 use $crate::{ErrorCode, Flags, PamModule, RawPamHandle}; |
46 | 46 |
47 #[no_mangle] | 47 #[no_mangle] |
48 extern "C" fn pam_sm_acct_mgmt( | 48 extern "C" fn pam_sm_acct_mgmt( |
49 pamh: *mut c_void, | 49 pamh: *mut c_void, |
50 flags: Flags, | 50 flags: Flags, |
51 argc: c_int, | 51 argc: c_int, |
52 argv: *const *const c_char, | 52 argv: *const *const c_char, |
53 ) -> c_int { | 53 ) -> c_int { |
54 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 54 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
55 let args = extract_argv(argc, argv); | 55 let args = extract_argv(argc, argv); |
56 ErrorCode::result_to_c(super::$ident::account_management(handle, args, flags)) | 56 ErrorCode::result_to_c(super::$ident::account_management(handle, args, flags)) |
57 } else { | 57 } else { |
58 ErrorCode::Ignore as c_int | 58 ErrorCode::Ignore as c_int |
59 } | 59 } |
64 pamh: *mut c_void, | 64 pamh: *mut c_void, |
65 flags: Flags, | 65 flags: Flags, |
66 argc: c_int, | 66 argc: c_int, |
67 argv: *const *const c_char, | 67 argv: *const *const c_char, |
68 ) -> c_int { | 68 ) -> c_int { |
69 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 69 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
70 let args = extract_argv(argc, argv); | 70 let args = extract_argv(argc, argv); |
71 ErrorCode::result_to_c(super::$ident::authenticate(handle, args, flags)) | 71 ErrorCode::result_to_c(super::$ident::authenticate(handle, args, flags)) |
72 } else { | 72 } else { |
73 ErrorCode::Ignore as c_int | 73 ErrorCode::Ignore as c_int |
74 } | 74 } |
79 pamh: *mut c_void, | 79 pamh: *mut c_void, |
80 flags: Flags, | 80 flags: Flags, |
81 argc: c_int, | 81 argc: c_int, |
82 argv: *const *const c_char, | 82 argv: *const *const c_char, |
83 ) -> c_int { | 83 ) -> c_int { |
84 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 84 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
85 let args = extract_argv(argc, argv); | 85 let args = extract_argv(argc, argv); |
86 ErrorCode::result_to_c(super::$ident::change_authtok(handle, args, flags)) | 86 ErrorCode::result_to_c(super::$ident::change_authtok(handle, args, flags)) |
87 } else { | 87 } else { |
88 ErrorCode::Ignore as c_int | 88 ErrorCode::Ignore as c_int |
89 } | 89 } |
94 pamh: *mut c_void, | 94 pamh: *mut c_void, |
95 flags: Flags, | 95 flags: Flags, |
96 argc: c_int, | 96 argc: c_int, |
97 argv: *const *const c_char, | 97 argv: *const *const c_char, |
98 ) -> c_int { | 98 ) -> c_int { |
99 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 99 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
100 let args = extract_argv(argc, argv); | 100 let args = extract_argv(argc, argv); |
101 ErrorCode::result_to_c(super::$ident::close_session(handle, args, flags)) | 101 ErrorCode::result_to_c(super::$ident::close_session(handle, args, flags)) |
102 } else { | 102 } else { |
103 ErrorCode::Ignore as c_int | 103 ErrorCode::Ignore as c_int |
104 } | 104 } |
110 flags: Flags, | 110 flags: Flags, |
111 argc: c_int, | 111 argc: c_int, |
112 argv: *const *const c_char, | 112 argv: *const *const c_char, |
113 ) -> c_int { | 113 ) -> c_int { |
114 let args = extract_argv(argc, argv); | 114 let args = extract_argv(argc, argv); |
115 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 115 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
116 ErrorCode::result_to_c(super::$ident::open_session(handle, args, flags)) | 116 ErrorCode::result_to_c(super::$ident::open_session(handle, args, flags)) |
117 } else { | 117 } else { |
118 ErrorCode::Ignore as c_int | 118 ErrorCode::Ignore as c_int |
119 } | 119 } |
120 } | 120 } |
125 flags: Flags, | 125 flags: Flags, |
126 argc: c_int, | 126 argc: c_int, |
127 argv: *const *const c_char, | 127 argv: *const *const c_char, |
128 ) -> c_int { | 128 ) -> c_int { |
129 let args = extract_argv(argc, argv); | 129 let args = extract_argv(argc, argv); |
130 if let Some(handle) = unsafe { pamh.cast::<LibPamHandle>().as_mut() } { | 130 if let Some(handle) = unsafe { pamh.cast::<RawPamHandle>().as_mut() } { |
131 ErrorCode::result_to_c(super::$ident::set_credentials(handle, args, flags)) | 131 ErrorCode::result_to_c(super::$ident::set_credentials(handle, args, flags)) |
132 } else { | 132 } else { |
133 ErrorCode::Ignore as c_int | 133 ErrorCode::Ignore as c_int |
134 } | 134 } |
135 } | 135 } |