getpwnam: Give precise error message if we cannot lookup the user

Cette révision appartient à :
Albert S. 2020-09-14 19:45:58 +02:00
Parent bb0b2886e9
révision 659f7bd320
1 fichiers modifiés avec 6 ajouts et 0 suppressions

Voir le fichier

@ -82,6 +82,12 @@ fn getpwnam(username: &str) -> std::io::Result<Passwd> {
let username_ptr = username_c.as_ptr();
let pwnamresult: *mut libc::passwd = unsafe { libc::getpwnam(username_ptr) };
if pwnamresult.is_null() {
if Error::last_os_error().raw_os_error().unwrap() == 0 {
return Err(Error::new(
ErrorKind::NotFound,
format!("The username '{}' was not found", username),
));
}
return Err(Error::new(
Error::last_os_error().kind(),
"Lookup of user failed: ".to_owned() +