]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix GCC compilation -Waggressive-loop-optimizations
authorAdrien Zinger <zinger.ad@gmail.com>
Wed, 20 Mar 2024 08:39:16 +0000 (09:39 +0100)
committerTomas Mraz <tomas@openssl.org>
Fri, 3 Jan 2025 15:00:57 +0000 (16:00 +0100)
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 <tomas@openssl.org>
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23898)

(cherry picked from commit c45ca0656f8d1fe43b8cf444c88d295a063341ca)

crypto/bn/rsaz_exp_x2.c

index e458b856b506d9a0d7c0e8c87514fcad97b1f9a5..13fc053f8331d7fc8026e75e8c831b60cf440c7d 100644 (file)
@@ -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)