From: Nathan Moinvaziri Date: Tue, 30 Jun 2020 00:51:52 +0000 (-0700) Subject: Fixed unsigned integer overflow in adler32_avx and adler32_ssse3 when len is zero. X-Git-Tag: 1.9.9-b1~163 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4332703735cf65e82f2fd6e3dd12b7f69dc9b5bc;p=thirdparty%2Fzlib-ng.git Fixed unsigned integer overflow in adler32_avx and adler32_ssse3 when len is zero. adler32_avx.c:108:15: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'size_t' (aka 'unsigned long') --- diff --git a/arch/x86/adler32_avx.c b/arch/x86/adler32_avx.c index 14b7ad46..cf6d6c14 100644 --- a/arch/x86/adler32_avx.c +++ b/arch/x86/adler32_avx.c @@ -105,7 +105,8 @@ uint32_t adler32_avx2(uint32_t adler, const unsigned char *buf, size_t len) { s2[7] = sum2; } - while (len--) { + while (len) { + len--; adler += *buf++; sum2 += adler; } diff --git a/arch/x86/adler32_ssse3.c b/arch/x86/adler32_ssse3.c index 123a737b..345f60d5 100644 --- a/arch/x86/adler32_ssse3.c +++ b/arch/x86/adler32_ssse3.c @@ -106,7 +106,8 @@ uint32_t adler32_ssse3(uint32_t adler, const unsigned char *buf, size_t len) { s2[3] = sum2; } - while (len--) { + while (len) { + len--; adler += *buf++; sum2 += adler; }