about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-01-20 09:05:21 -0800
committerNiko Matsakis <niko@alum.mit.edu>2012-01-21 19:31:52 -0800
commit42b97f317a92d6d88456a036728812f120e9fd3f (patch)
tree7aadc59c8a5fe2f5fe16cba9ac3733c2505b9b27
parentde2bb2806f02aa668e9cda8a86ec5b62c595c09b (diff)
downloadrust-42b97f317a92d6d88456a036728812f120e9fd3f.tar.gz
rust-42b97f317a92d6d88456a036728812f120e9fd3f.zip
use u64 and not uint; otherwise shift results are undef. in 32 bit
Fixes #1605.
-rw-r--r--src/libstd/md4.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libstd/md4.rs b/src/libstd/md4.rs
index 9344767bed3..2d06c74f336 100644
--- a/src/libstd/md4.rs
+++ b/src/libstd/md4.rs
@@ -6,17 +6,17 @@ fn md4(msg: [u8]) -> {a: u32, b: u32, c: u32, d: u32} {
 
     // pad message
     let msg = msg + [0x80u8];
-    let bitlen = orig_len + 8u;
-    while (bitlen + 64u) % 512u > 0u {
+    let bitlen = orig_len + 8u64;
+    while (bitlen + 64u64) % 512u64 > 0u64 {
         msg += [0u8];
-        bitlen += 8u;
+        bitlen += 8u64;
     }
 
     // append length
-    let i = 0u;
-    while i < 8u {
-        msg += [(orig_len >> (i * 8u)) as u8];
-        i += 1u;
+    let i = 0u64;
+    while i < 8u64 {
+        msg += [(orig_len >> (i * 8u64)) as u8];
+        i += 1u64;
     }
 
     let a = 0x67452301u32;