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> (cherry picked from commit c003851783ed05e3fd5296786e1f8f6a63dc4f31)
This commit is contained in:
parent
edfca4e3da
commit
4675a56a3c
1 changed files with 4 additions and 6 deletions
10
apps/speed.c
10
apps/speed.c
|
@ -666,6 +666,10 @@ int MAIN(int argc, char **argv)
|
||||||
ecdh_b[i] = NULL;
|
ecdh_b[i] = NULL;
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
# ifndef OPENSSL_NO_RSA
|
||||||
|
for (i = 0; i < RSA_NUM; i++)
|
||||||
|
rsa_key[i] = NULL;
|
||||||
|
# endif
|
||||||
|
|
||||||
if (bio_err == NULL)
|
if (bio_err == NULL)
|
||||||
if ((bio_err = BIO_new(BIO_s_file())) != NULL)
|
if ((bio_err = BIO_new(BIO_s_file())) != NULL)
|
||||||
|
@ -674,12 +678,6 @@ int MAIN(int argc, char **argv)
|
||||||
if (!load_config(bio_err, NULL))
|
if (!load_config(bio_err, NULL))
|
||||||
goto end;
|
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) {
|
if ((buf = (unsigned char *)OPENSSL_malloc((int)BUFSIZE)) == NULL) {
|
||||||
BIO_printf(bio_err, "out of memory\n");
|
BIO_printf(bio_err, "out of memory\n");
|
||||||
goto end;
|
goto end;
|
||||||
|
|
Loading…
Reference in a new issue