diff --git a/src/libstd/sys/unix/os.rs b/src/libstd/sys/unix/os.rs index 899280aa7094b..a38c7a30b7578 100644 --- a/src/libstd/sys/unix/os.rs +++ b/src/libstd/sys/unix/os.rs @@ -229,7 +229,8 @@ pub fn current_exe() -> io::Result { if v.is_null() { Err(io::Error::last_os_error()) } else { - Ok(Path::new(CStr::from_ptr(v).to_bytes().to_vec())) + let vec = CStr::from_ptr(v).to_bytes().to_vec(); + Ok(PathBuf::new::(&OsStringExt::from_vec(vec))) } } }