From 6c93b03e9a7e78736dd5e8b7f44b2f7bca788f2e Mon Sep 17 00:00:00 2001 From: Adrien Zinger Date: Wed, 20 Mar 2024 09:39:16 +0100 Subject: [PATCH] Fix GCC compilation -Waggressive-loop-optimizations GCC 13.1.0 were reporting a compilation warning with -O2/3 and -Waggressive-loop-optimizations. GCC is raising an undefined behavior in the while loop. Replace the while loop with a memset call at the top of the function. Fixes #21088 CLA: trivial Reviewed-by: Tomas Mraz Reviewed-by: Bernd Edlinger Reviewed-by: Neil Horman (Merged from https://github.com/openssl/openssl/pull/23898) (cherry picked from commit c45ca0656f8d1fe43b8cf444c88d295a063341ca) --- crypto/bn/rsaz_exp_x2.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/crypto/bn/rsaz_exp_x2.c b/crypto/bn/rsaz_exp_x2.c index e458b856b50..13fc053f833 100644 --- a/crypto/bn/rsaz_exp_x2.c +++ b/crypto/bn/rsaz_exp_x2.c @@ -575,11 +575,7 @@ static void to_words52(BN_ULONG *out, int out_len, out_len--; } - while (out_len > 0) { - *out = 0; - out_len--; - out++; - } + memset(out, 0, out_len * sizeof(BN_ULONG)); } static ossl_inline void put_digit(uint8_t *out, int out_len, uint64_t digit) -- 2.47.2