about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorPeter Atashian <retep998@gmail.com>2016-02-11 13:12:56 -0500
committerPeter Atashian <retep998@gmail.com>2016-02-11 13:12:56 -0500
commitdc97023e3100ee651741e7c5b4d8816e0bc3583d (patch)
tree44c84f719d00c62825d0bed95b5204732d0a8897 /src/libstd/sys
parent096dbf84c7acc78283adfa46eecd41d7355f6f3e (diff)
downloadrust-dc97023e3100ee651741e7c5b4d8816e0bc3583d.tar.gz
rust-dc97023e3100ee651741e7c5b4d8816e0bc3583d.zip
Fix usage of GetUserProfileDirectoryW in env::home_dir
Signed-off-by: Peter Atashian <retep998@gmail.com>
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/windows/os.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstd/sys/windows/os.rs b/src/libstd/sys/windows/os.rs
index 48c9b70dce4..688475a7565 100644
--- a/src/libstd/sys/windows/os.rs
+++ b/src/libstd/sys/windows/os.rs
@@ -338,9 +338,9 @@ pub fn home_dir() -> Option<PathBuf> {
         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()
     })