From ca902dbd9c25ce936c6f9b3feeceec252af6cd5b Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Wed, 27 Dec 2023 16:25:37 +0100 Subject: [PATCH] timing.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure the ctx variable in function mbedtls_timing_self_test is initialized properly, to avoid build failures with -O3 e.g. on ppc64el cd /<>/obj-powerpc64le-linux-gnu/library && /usr/bin/cc -I/<>/include -I/<>/library -g -O3 -Werror=implicit-function-declaration -Werror=array-bounds -Werror=clobbered -Werror=volatile-register-var -D__DEB_CANARY_CFLAGS_428fca9bc1921c25c5121f9da7815cde__ -fno-omit-frame-pointer -ffile-prefix-map=/<>=. -fstack-protector-strong -Wformat -Werror=format-security -fdebug-prefix-map=/<>=/usr/src/mbedtls-2.28.6-1 -D__DEB_CANARY_CPPFLAGS_428fca9bc1921c25c5121f9da7815cde__ -Wdate-time -D_FORTIFY_SOURCE=3 -Wall -Wextra -Wwrite-strings -Wformat=2 -Wno-format-nonliteral -Wvla -Wlogical-op -Wshadow -Wformat-signedness -Wformat-overflow=2 -Wformat-truncation -Werror -Wmissing-declarations -Wmissing-prototypes -MD -MT library/CMakeFiles/mbedcrypto_static.dir/xtea.c.o -MF CMakeFiles/mbedcrypto_static.dir/xtea.c.o.d -o CMakeFiles/mbedcrypto_static.dir/xtea.c.o -c /<>/library/xtea.c In function ‘mbedtls_timing_get_delay’, inlined from ‘mbedtls_timing_self_test’ at /<>/library/timing.c:427:13: /<>/library/timing.c:334:12: error: ‘ctx.fin_ms’ may be used uninitialized [-Werror=maybe-uninitialized] 334 | if (ctx->fin_ms == 0) { | ~~~^~~~~~~~ /<>/library/timing.c: In function ‘mbedtls_timing_self_test’: /<>/library/timing.c:402:34: note: ‘ctx’ declared here 402 | mbedtls_timing_delay_context ctx; | ^~~ In function ‘mbedtls_timing_get_delay’, inlined from ‘mbedtls_timing_self_test’ at /<>/library/timing.c:427:13: /<>/library/timing.c:344:26: error: ‘ctx.int_ms’ may be used uninitialized [-Werror=maybe-uninitialized] 344 | if (elapsed_ms >= ctx->int_ms) { | ~~~^~~~~~~~ /<>/library/timing.c: In function ‘mbedtls_timing_self_test’: /<>/library/timing.c:402:34: note: ‘ctx’ declared here 402 | mbedtls_timing_delay_context ctx; | ^~~ Signed-off-by: Gianfranco Costamagna Signed-off-by: Gianfranco Costamagna --- library/timing.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/timing.c b/library/timing.c index f2f0a4386b..8bc1b4278b 100644 --- a/library/timing.c +++ b/library/timing.c @@ -399,7 +399,7 @@ int mbedtls_timing_self_test(int verbose) int hardfail = 0; struct mbedtls_timing_hr_time hires; uint32_t a = 0, b = 0; - mbedtls_timing_delay_context ctx; + mbedtls_timing_delay_context ctx = {}; if (verbose != 0) { mbedtls_printf(" TIMING tests note: will take some time!\n");