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