We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent f08cb23 commit 1f71a3eCopy full SHA for 1f71a3e
[refs]
@@ -1,2 +1,2 @@
1
---
2
-refs/heads/master: 556947c47a45db44702251552d4cb10ef8f1eb3f
+refs/heads/master: de2bb2806f02aa668e9cda8a86ec5b62c595c09b
trunk/src/libstd/md4.rs
@@ -1,12 +1,17 @@
fn md4(msg: [u8]) -> {a: u32, b: u32, c: u32, d: u32} {
- let orig_len = vec::len(msg) * 8u;
+ // subtle: if orig_len is merely uint, then the code below
3
+ // which performs shifts by 32 bits or more has undefined
4
+ // results.
5
+ let orig_len: u64 = (vec::len(msg) * 8u) as u64;
6
+
7
// pad message
8
let msg = msg + [0x80u8];
9
let bitlen = orig_len + 8u;
10
while (bitlen + 64u) % 512u > 0u {
11
msg += [0u8];
12
bitlen += 8u;
13
}
14
15
// append length
16
let i = 0u;
17
while i < 8u {
0 commit comments