]> granicus.if.org Git - php/commitdiff
ext/sodium: avoid negations on unsigned values
authorFrank Denis <github@pureftpd.org>
Thu, 21 Sep 2017 15:46:01 +0000 (17:46 +0200)
committerFrank Denis <github@pureftpd.org>
Thu, 21 Sep 2017 15:46:01 +0000 (17:46 +0200)
ext/sodium/libsodium.c

index bb0aad46c50b13485aac9b1a86e4f4b37c371f36..8d02af577dfaf777bc21d44f10eb9371544ced70 100644 (file)
@@ -3284,7 +3284,7 @@ PHP_FUNCTION(sodium_unpad)
                        is_barrier =
                                (( (acc - 1U) & (pad_len - 1U) & ((c ^ 0x80) - 1U) ) >> 8) & 1U;
                        acc |= c;
-                       pad_len |= (i & - is_barrier);
+                       pad_len |= i & (1U + ~is_barrier);
                        valid |= (unsigned char) is_barrier;
                }
                unpadded_len = padded_len - 1U - pad_len;