Skip to content

Commit

Permalink
Rollup merge of rust-lang#126854 - devnexen:std_unix_os_fallback_upd,…
Browse files Browse the repository at this point in the history
… r=Mark-Simulacrum

std::unix::os::home_dir: fallback's optimisation.

we're using a guaranteed initialised field on success.
  • Loading branch information
matthiaskrgr authored Jun 24, 2024
2 parents 828e528 + f0b95fc commit c26bd79
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions std/src/sys/pal/unix/os.rs
Original file line number Diff line number Diff line change
Expand Up @@ -738,17 +738,17 @@ pub fn home_dir() -> Option<PathBuf> {
n => n as usize,
};
let mut buf = Vec::with_capacity(amt);
let mut passwd: libc::passwd = mem::zeroed();
let mut p = mem::MaybeUninit::<libc::passwd>::uninit();
let mut result = ptr::null_mut();
match libc::getpwuid_r(
libc::getuid(),
&mut passwd,
p.as_mut_ptr(),
buf.as_mut_ptr(),
buf.capacity(),
&mut result,
) {
0 if !result.is_null() => {
let ptr = passwd.pw_dir as *const _;
let ptr = (*result).pw_dir as *const _;
let bytes = CStr::from_ptr(ptr).to_bytes().to_vec();
Some(OsStringExt::from_vec(bytes))
}
Expand Down

0 comments on commit c26bd79

Please sign in to comment.