From e1d7d3e40a7fd50348d849046fbfd9bf976e643c Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 12 Nov 2022 17:56:51 +0100 Subject: [PATCH] sha1: ignore -Wstringop-overread warning MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes the following: [4/38] Building C object CMakeFiles/event_shared.dir/sha1.c.o In function ‘SHA1Update’, inlined from ‘SHA1Final’ at /src/le/libevent/sha1.c:274:5, inlined from ‘builtin_SHA1’ at /src/le/libevent/sha1.c:292:5: /src/le/libevent/sha1.c:228:13: warning: ‘SHA1Transform’ reading 64 bytes from a region of size 7 [-Wstringop-overread] 228 | SHA1Transform(context->state, *(const unsigned char (*)[64])&data[i]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /src/le/libevent/sha1.c:228:13: note: referencing argument 2 of type ‘const unsigned char[64]’ /src/le/libevent/sha1.c: In function ‘builtin_SHA1’: /src/le/libevent/sha1.c:80:13: note: in a call to function ‘SHA1Transform’ 80 | static void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]) { | ^~~~~~~~~~~~~ --- sha1.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sha1.c b/sha1.c index c8e23da2..09cf6e69 100644 --- a/sha1.c +++ b/sha1.c @@ -17,6 +17,14 @@ A million repetitions of "a" #define SHA1HANDSOFF +#if defined(__clang__) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +/* Ignore the case when SHA1Transform() called with 'char *', that code passed + * buffer of 64 bytes anyway (at least now) */ +#pragma GCC diagnostic ignored "-Wstringop-overread" +#endif + #include #include -- 2.50.1