diff options
author | Frank Denis <github@pureftpd.org> | 2018-10-14 10:37:37 +0200 |
---|---|---|
committer | Frank Denis <github@pureftpd.org> | 2018-10-14 10:37:37 +0200 |
commit | bf48d0c475c0c1312fbf763d221d94e87cf480d0 (patch) | |
tree | 57f9f03cac6f731ed2eec4b88ff8ccefe1aa3a30 | |
parent | 15ba7df2245ac177a965346e7ec96a4ab3300839 (diff) | |
download | php-git-bf48d0c475c0c1312fbf763d221d94e87cf480d0.tar.gz |
ext/sodium: Fix sodium_pad() with blocksize >= 256
Backport from PECL libsodium-php 2.0.12
-rw-r--r-- | ext/sodium/libsodium.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/sodium/libsodium.c b/ext/sodium/libsodium.c index a5f892fb7a..5462700f6c 100644 --- a/ext/sodium/libsodium.c +++ b/ext/sodium/libsodium.c @@ -3424,7 +3424,8 @@ PHP_FUNCTION(sodium_pad) tail = &ZSTR_VAL(padded)[xpadded_len]; mask = 0U; for (i = 0; i < blocksize; i++) { - barrier_mask = (unsigned char) (((i ^ xpadlen) - 1U) >> 8); + barrier_mask = (unsigned char) + (((i ^ xpadlen) - 1U) >> ((sizeof(size_t) - 1U) * CHAR_BIT)); tail[-i] = (tail[-i] & mask) | (0x80 & barrier_mask); mask |= barrier_mask; } |