Fix memory leak reporting.
Free up bio_err after memory leak data has been printed to it. In int_free_ex_data if ex_data is NULL there is nothing to free up so return immediately and don't reallocate it. Reviewed-by: Tim Hudson <tjh@openssl.org>
This commit is contained in:
parent
259c360d0b
commit
9c7a780bbe
@ -423,10 +423,6 @@ int main(int Argc, char *ARGV[])
|
||||
if (arg.data != NULL)
|
||||
OPENSSL_free(arg.data);
|
||||
|
||||
if (bio_err != NULL) {
|
||||
BIO_free(bio_err);
|
||||
bio_err = NULL;
|
||||
}
|
||||
#if defined( OPENSSL_SYS_VMS) && (__INITIAL_POINTER_SIZE == 64)
|
||||
/* Free any duplicate Argv[] storage. */
|
||||
if (free_Argv) {
|
||||
@ -435,6 +431,10 @@ int main(int Argc, char *ARGV[])
|
||||
#endif
|
||||
apps_shutdown();
|
||||
CRYPTO_mem_leaks(bio_err);
|
||||
if (bio_err != NULL) {
|
||||
BIO_free(bio_err);
|
||||
bio_err = NULL;
|
||||
}
|
||||
|
||||
OPENSSL_EXIT(ret);
|
||||
}
|
||||
|
@ -500,6 +500,8 @@ static void int_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
|
||||
EX_CLASS_ITEM *item;
|
||||
void *ptr;
|
||||
CRYPTO_EX_DATA_FUNCS **storage = NULL;
|
||||
if (ex_data == NULL)
|
||||
return;
|
||||
if ((item = def_get_class(class_index)) == NULL)
|
||||
return;
|
||||
CRYPTO_r_lock(CRYPTO_LOCK_EX_DATA);
|
||||
|
Loading…
Reference in New Issue
Block a user