summaryrefslogtreecommitdiff
path: root/ext/hash
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-06-19 15:55:56 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-06-19 15:55:56 +0200
commit555d68be1067d1757168ec8bbea032c68a13f0ec (patch)
tree328e0e264240004b63ad4bc262ade36284a48e66 /ext/hash
parent88b603768f8e5074ad5cbdccc1e0779089fac9d0 (diff)
downloadphp-git-555d68be1067d1757168ec8bbea032c68a13f0ec.tar.gz
Fix shift UB in hash_snefru
Diffstat (limited to 'ext/hash')
-rw-r--r--ext/hash/hash_snefru.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/hash/hash_snefru.c b/ext/hash/hash_snefru.c
index 4bca34d6c3..867556acc5 100644
--- a/ext/hash/hash_snefru.c
+++ b/ext/hash/hash_snefru.c
@@ -123,8 +123,8 @@ static inline void SnefruTransform(PHP_SNEFRU_CTX *context, const unsigned char
int i, j;
for (i = 0, j = 0; i < 32; i += 4, ++j) {
- context->state[8+j] = ((input[i] & 0xff) << 24) | ((input[i+1] & 0xff) << 16) |
- ((input[i+2] & 0xff) << 8) | (input[i+3] & 0xff);
+ context->state[8+j] = ((unsigned)input[i] << 24) | ((unsigned)input[i+1] << 16) |
+ ((unsigned)input[i+2] << 8) | (unsigned)input[i+3];
}
Snefru(context->state);
ZEND_SECURE_ZERO(&context->state[8], sizeof(uint32_t) * 8);