Module Name: src
Committed By: kamil
Date: Fri Feb 14 01:52:35 UTC 2020
Modified Files:
src/external/bsd/jemalloc/include/jemalloc/internal: hash.h
Log Message:
Fix undefined behavior in hash.h (jemalloc)
Cherry-pick upstream patch:
Fix Undefined Behavior in hash.h
hash.h:200:27, left shift of 250 by 24 places cannot be represented in type
'int'
https://github.com/jemalloc/jemalloc/commit/7fd22f7b2ea5ce2540563ece8e2d30a5316ac857
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/external/bsd/jemalloc/include/jemalloc/internal/hash.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/jemalloc/include/jemalloc/internal/hash.h
diff -u src/external/bsd/jemalloc/include/jemalloc/internal/hash.h:1.2 src/external/bsd/jemalloc/include/jemalloc/internal/hash.h:1.3
--- src/external/bsd/jemalloc/include/jemalloc/internal/hash.h:1.2 Mon Mar 4 20:21:18 2019
+++ src/external/bsd/jemalloc/include/jemalloc/internal/hash.h Fri Feb 14 01:52:35 2020
@@ -183,21 +183,21 @@ hash_x86_128(const void *key, const int
k4 *= c4; k4 = hash_rotl_32(k4, 18); k4 *= c1; h4 ^= k4;
/*FALLTHROUGH*/
- case 12: k3 ^= tail[11] << 24; /*FALLTHROUGH*/
+ case 12: k3 ^= (uint32_t)tail[11] << 24; /*FALLTHROUGH*/
case 11: k3 ^= tail[10] << 16; /*FALLTHROUGH*/
case 10: k3 ^= tail[ 9] << 8; /*FALLTHROUGH*/
case 9: k3 ^= tail[ 8] << 0;
k3 *= c3; k3 = hash_rotl_32(k3, 17); k3 *= c4; h3 ^= k3;
/*FALLTHROUGH*/
- case 8: k2 ^= tail[ 7] << 24; /*FALLTHROUGH*/
+ case 8: k2 ^= (uint32_t)tail[ 7] << 24; /*FALLTHROUGH*/
case 7: k2 ^= tail[ 6] << 16; /*FALLTHROUGH*/
case 6: k2 ^= tail[ 5] << 8; /*FALLTHROUGH*/
case 5: k2 ^= tail[ 4] << 0;
k2 *= c2; k2 = hash_rotl_32(k2, 16); k2 *= c3; h2 ^= k2;
/*FALLTHROUGH*/
- case 4: k1 ^= tail[ 3] << 24; /*FALLTHROUGH*/
+ case 4: k1 ^= (uint32_t)tail[ 3] << 24; /*FALLTHROUGH*/
case 3: k1 ^= tail[ 2] << 16; /*FALLTHROUGH*/
case 2: k1 ^= tail[ 1] << 8; /*FALLTHROUGH*/
case 1: k1 ^= tail[ 0] << 0;