diff --git a/src/libstd/sys/windows/os.rs b/src/libstd/sys/windows/os.rs index 48c9b70dce43..688475a75657 100644 --- a/src/libstd/sys/windows/os.rs +++ b/src/libstd/sys/windows/os.rs @@ -338,9 +338,9 @@ pub fn home_dir() -> Option { let _handle = Handle::new(token); super::fill_utf16_buf(|buf, mut sz| { match c::GetUserProfileDirectoryW(token, buf, &mut sz) { - 0 if c::GetLastError() != 0 => 0, + 0 if c::GetLastError() != c::ERROR_INSUFFICIENT_BUFFER => 0, 0 => sz, - n => n as c::DWORD, + _ => sz - 1, // sz includes the null terminator } }, super::os2path).ok() })