about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sys/windows/os.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libstd/sys/windows/os.rs b/src/libstd/sys/windows/os.rs
index 5cfc2010424..522831a62b6 100644
--- a/src/libstd/sys/windows/os.rs
+++ b/src/libstd/sys/windows/os.rs
@@ -311,6 +311,7 @@ impl ExactSizeIterator for Args {
 
 impl Drop for Args {
     fn drop(&mut self) {
+        // NULL-safe
         unsafe { c::LocalFree(self.cur as *mut c_void); }
     }
 }
@@ -321,6 +322,8 @@ pub fn args() -> Args {
         let lpCmdLine = c::GetCommandLineW();
         let szArgList = c::CommandLineToArgvW(lpCmdLine, &mut nArgs);
 
+        // cur may be NULL if CommandLineToArgvW failed,
+        // in which case the range is empty to prevent reads
         Args { cur: szArgList, range: 0..(nArgs as isize) }
     }
 }