From 2da3121492a086fc0ec7a3306321b28d5173f52a Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Wed, 28 Aug 2024 13:04:43 +0200 Subject: [PATCH] sys: crypt: style + drop unnecessary length check These are statically sized arrays, not slices, they cannot be empty. Signed-off-by: Wolfgang Bumiller --- proxmox-sys/src/crypt.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/proxmox-sys/src/crypt.rs b/proxmox-sys/src/crypt.rs index 8bc0d7e3..b802040b 100644 --- a/proxmox-sys/src/crypt.rs +++ b/proxmox-sys/src/crypt.rs @@ -26,7 +26,7 @@ pub const HASH_PREFIX: &str = "$y$"; const HASH_COST: u64 = 5; #[repr(C)] -struct crypt_data { +struct CryptData { output: [libc::c_char; CRYPT_OUTPUT_SIZE], setting: [libc::c_char; CRYPT_OUTPUT_SIZE], input: [libc::c_char; CRYPT_MAX_PASSPHRASE_SIZE], @@ -43,11 +43,11 @@ pub fn crypt(password: &[u8], salt: &[u8]) -> Result { fn __crypt_r( key: *const libc::c_char, salt: *const libc::c_char, - data: *mut crypt_data, + data: *mut CryptData, ) -> *mut libc::c_char; } - let mut data: crypt_data = unsafe { std::mem::zeroed() }; + let mut data: CryptData = unsafe { std::mem::zeroed() }; for (i, c) in salt.iter().take(data.setting.len() - 1).enumerate() { data.setting[i] = *c as libc::c_char; } @@ -71,7 +71,7 @@ pub fn crypt(password: &[u8], salt: &[u8]) -> Result { // > output field of their data argument, and crypt writes an invalid hash to its static // > storage area. This string will be shorter than 13 characters, will begin with a ‘*’, // > and will not compare equal to setting. - if data.output.first().is_none() || Some(&('*' as i8)) == data.output.first() { + if data.output[0] == '*' as libc::c_char { bail!("internal error: crypt_r returned invalid hash"); } CStr::from_ptr(&data.output as *const _) @@ -133,7 +133,7 @@ pub fn crypt_gensalt(prefix: &str, count: u64, rbytes: &[u8]) -> Result