mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
librhash: Avoid signed left-shift overflow in sha256
Fix `rhash_sha256_final` to use unsigned integers for left shifting to avoid the possibility of undefined overflow behavior.
This commit is contained in:
@@ -218,8 +218,8 @@ void rhash_sha256_final(sha256_ctx *ctx, unsigned char* result)
|
|||||||
/* pad message and run for last block */
|
/* pad message and run for last block */
|
||||||
|
|
||||||
/* append the byte 0x80 to the message */
|
/* append the byte 0x80 to the message */
|
||||||
ctx->message[index] &= le2me_32(~(0xFFFFFFFF << shift));
|
ctx->message[index] &= le2me_32(~(0xFFFFFFFFu << shift));
|
||||||
ctx->message[index++] ^= le2me_32(0x80 << shift);
|
ctx->message[index++] ^= le2me_32(0x80u << shift);
|
||||||
|
|
||||||
/* if no room left in the message to store 64-bit message length */
|
/* if no room left in the message to store 64-bit message length */
|
||||||
if (index > 14) {
|
if (index > 14) {
|
||||||
|
Reference in New Issue
Block a user