about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/lib/generic_os.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/generic_os.rs b/src/lib/generic_os.rs
index d1e39a2ea9f..bb98c0731f8 100644
--- a/src/lib/generic_os.rs
+++ b/src/lib/generic_os.rs
@@ -38,14 +38,18 @@ fn getenv(n: str) -> option::t<str> {
         let res =
             str::as_buf(n,
                         {|nbuf|
+                            unsafe {
                             let vbuf = vec::to_ptr(v);
                             os::kernel32::GetEnvironmentVariableA(nbuf, vbuf,
                                                                   nsize)
+                        }
                         });
         if res == 0u {
             ret option::none;
         } else if res < nsize {
-            vec::unsafe::set_len(v, res);
+            unsafe {
+                vec::unsafe::set_len(v, res);
+            }
             ret option::some(str::unsafe_from_bytes(v));
         } else { nsize = res; }
     }