From 1f62714db86e6afc1791b6b31947c223905eeb38 Mon Sep 17 00:00:00 2001 From: Andy Gross Date: Wed, 30 Jan 2019 10:25:53 -0600 Subject: [PATCH] Fix uninitialized variable in x509_crt This patch fixes an issue we encountered with more stringent compiler warnings. The signature_is_good variable has a possibility of being used uninitialized. This patch moves the use of the variable to a place where it cannot be used while uninitialized. Signed-off-by: Andy Gross --- ChangeLog | 3 +++ library/x509_crt.c | 10 ++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 77d9d81cd..b9f46166f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -49,6 +49,9 @@ Bugfix * Fix propagation of restart contexts in restartable EC operations. This could previously lead to segmentation faults in builds using an address-sanitizer and enabling but not using MBEDTLS_ECP_RESTARTABLE. + * Improve code clarity in x509_crt module, removing false-positive + uninitialized variable warnings on some recent toolchains (GCC8, etc). + Discovered and fixed by Andy Gross (Linaro), #2392. Changes * Replace multiple uses of MD2 by SHA-256 in X.509 test suite. Fixes #821. diff --git a/library/x509_crt.c b/library/x509_crt.c index b2c19db68..48f244e2e 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -2611,15 +2611,13 @@ check_signature: continue; } + *r_parent = parent; + *r_signature_is_good = signature_is_good; + break; } - if( parent != NULL ) - { - *r_parent = parent; - *r_signature_is_good = signature_is_good; - } - else + if( parent == NULL ) { *r_parent = fallback_parent; *r_signature_is_good = fallback_signature_is_good;