Initialize potentially uninitialized local variables
authorGunnar Kudrjavets <gunnarku@microsoft.com>
Wed, 6 May 2015 09:16:55 +0000 (10:16 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 6 May 2015 12:06:46 +0000 (13:06 +0100)
commit4c9b0a0314c8bab3c9faeac06d0aa734836b2f81
tree5acabe389517b31d1d3d2dad29fdfac426a0165c
parent4407d070e591cc8dc3f4b34779933f97cf2df222
Initialize potentially uninitialized local variables

Compiling OpenSSL code with MSVC and /W4 results in a number of warnings.
One category of warnings is particularly interesting - C4701 (potentially
uninitialized local variable 'name' used). This warning pretty much means
that there's a code path which results in uninitialized variables being used
or returned. Depending on compiler, its options, OS, values in registers
and/or stack, the results can be nondeterministic. Cases like this are very
hard to debug so it's rational to fix these issues.

This patch contains a set of trivial fixes for all the C4701 warnings (just
initializing variables to 0 or NULL or appropriate error code) to make sure
that deterministic values will be returned from all the execution paths.

RT#3835

Signed-off-by: Matt Caswell <matt@openssl.org>
Matt's note: All of these appear to be bogus warnings, i.e. there isn't
actually a code path where an unitialised variable could be used - its just
that the compiler hasn't been able to figure that out from the logic. So
this commit is just about silencing spurious warnings.

Reviewed-by: Rich Salz <rsalz@openssl.org>
15 files changed:
apps/apps.c
apps/dsaparam.c
apps/s_server.c
crypto/asn1/asn1_gen.c
crypto/asn1/tasn_dec.c
crypto/evp/m_sigver.c
crypto/evp/p_sign.c
crypto/evp/p_verify.c
crypto/pem/pem_lib.c
crypto/x509/x509_vfy.c
crypto/x509v3/v3_addr.c
crypto/x509v3/v3_asid.c
crypto/x509v3/v3_conf.c
ssl/t1_lib.c
test/evp_test.c