summaryrefslogtreecommitdiff
path: root/ext/sodium/libsodium.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sodium/libsodium.c')
-rw-r--r--ext/sodium/libsodium.c3
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;
}