diff options
author | Vitezslav Cizek <vcizek@suse.com> | 2016-11-24 13:21:41 +0100 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2016-11-26 20:09:00 -0500 |
commit | be3a7ddef6c61ef59228acd2dd5e511e3334445c (patch) | |
tree | 42098b06bb3da17e3fd282abe1d42953fa557afe | |
parent | c477f8e7165d30c5c8ca98f7409714f56dc2048c (diff) | |
download | openssl-new-be3a7ddef6c61ef59228acd2dd5e511e3334445c.tar.gz |
apps/speed.c: Fix crash when config loading fails
Move rsa_key initialization in front of load_config().
If loading the config fails, rsa_key isn't initialized and may
cause invalid free() in the end: cleanup.
Remove superfluous memset.
Reviewed-by: Andy Polyakov <appro@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
-rw-r--r-- | apps/speed.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/apps/speed.c b/apps/speed.c index f16b3c9b63..6cd1021525 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -670,6 +670,10 @@ int MAIN(int argc, char **argv) ecdh_b[i] = NULL; } # endif +# ifndef OPENSSL_NO_RSA + for (i = 0; i < RSA_NUM; i++) + rsa_key[i] = NULL; +# endif if (bio_err == NULL) if ((bio_err = BIO_new(BIO_s_file())) != NULL) @@ -678,12 +682,6 @@ int MAIN(int argc, char **argv) if (!load_config(bio_err, NULL)) goto end; -# ifndef OPENSSL_NO_RSA - memset(rsa_key, 0, sizeof(rsa_key)); - for (i = 0; i < RSA_NUM; i++) - rsa_key[i] = NULL; -# endif - if ((buf = (unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL) { BIO_printf(bio_err, "out of memory\n"); goto end; |