Skip to content

Commit d057458

Browse files
committed
ext/sodium: Avoid shifts wider than 32 bits on size_t values
Backport from PECL libsodium-php 2.0.10
1 parent c25b1a7 commit d057458

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

ext/sodium/libsodium.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3405,7 +3405,8 @@ PHP_FUNCTION(sodium_pad)
34053405
for (j = 0U; j <= xpadded_len; j++) {
34063406
ZSTR_VAL(padded)[j] = unpadded[i];
34073407
k -= st;
3408-
st = (~(((((k >> 48) | (k >> 32) | (k >> 16) | k) & 0xffff) - 1U) >> 16)) & 1U;
3408+
st = (size_t) (~(((( (((uint64_t) k) >> 48) | (((uint64_t) k) >> 32) |
3409+
(k >> 16) | k) & 0xffff) - 1U) >> 16)) & 1U;
34093410
i += st;
34103411
}
34113412
#if SODIUM_LIBRARY_VERSION_MAJOR > 9 || (SODIUM_LIBRARY_VERSION_MAJOR == 9 && SODIUM_LIBRARY_VERSION_MINOR >= 6)

0 commit comments

Comments
 (0)