summaryrefslogtreecommitdiff
path: root/lib/crypto
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2018-11-22 09:22:38 +0100
committerGary Lockyer <gary@samba.org>2018-11-22 22:13:27 +0100
commitee6497574a0b5a7fcaf8171fea50dd169f468158 (patch)
tree82a7057db386abe4036fe9c8a013d2dc50058eb7 /lib/crypto
parent1642dc2fd4c3e89bab127c5c1d0b675d1c5cb6f9 (diff)
downloadsamba-ee6497574a0b5a7fcaf8171fea50dd169f468158.tar.gz
lib:crypto: Fix undefined behavior in md4
runtime error: left shift of 145 by 24 places cannot be represented in type 'int' Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Diffstat (limited to 'lib/crypto')
-rw-r--r--lib/crypto/md4.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/crypto/md4.c b/lib/crypto/md4.c
index 7eb6070cd44..831fe32ecb8 100644
--- a/lib/crypto/md4.c
+++ b/lib/crypto/md4.c
@@ -112,8 +112,10 @@ static void copy64(uint32_t *M, const uint8_t *in)
int i;
for (i=0;i<16;i++)
- M[i] = (in[i*4+3]<<24) | (in[i*4+2]<<16) |
- (in[i*4+1]<<8) | (in[i*4+0]<<0);
+ M[i] = ((uint32_t)in[i*4+3] << 24) |
+ ((uint32_t)in[i*4+2] << 16) |
+ ((uint32_t)in[i*4+1] << 8) |
+ ((uint32_t)in[i*4+0] << 0);
}
static void copy4(uint8_t *out, uint32_t x)