From bf48d0c475c0c1312fbf763d221d94e87cf480d0 Mon Sep 17 00:00:00 2001 From: Frank Denis <github@pureftpd.org> Date: Sun, 14 Oct 2018 10:37:37 +0200 Subject: [PATCH] ext/sodium: Fix sodium_pad() with blocksize >= 256 Backport from PECL libsodium-php 2.0.12 --- ext/sodium/libsodium.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; } -- 2.40.0