From 9e07ffa4e4211ca165f24c1f45744fbe7984a43f Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 29 Nov 2016 08:28:31 -0500 Subject: 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. --- Utilities/cmlibrhash/librhash/sha256.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Utilities/cmlibrhash/librhash/sha256.c b/Utilities/cmlibrhash/librhash/sha256.c index 064dfe2..af5b0fe 100644 --- a/Utilities/cmlibrhash/librhash/sha256.c +++ b/Utilities/cmlibrhash/librhash/sha256.c @@ -218,8 +218,8 @@ void rhash_sha256_final(sha256_ctx *ctx, unsigned char* result) /* pad message and run for last block */ /* append the byte 0x80 to the message */ - ctx->message[index] &= le2me_32(~(0xFFFFFFFF << shift)); - ctx->message[index++] ^= le2me_32(0x80 << shift); + ctx->message[index] &= le2me_32(~(0xFFFFFFFFu << shift)); + ctx->message[index++] ^= le2me_32(0x80u << shift); /* if no room left in the message to store 64-bit message length */ if (index > 14) { -- cgit v0.12