OpenSSL: Fix memory leak on FIPS error paths
Do not leave the tls_global context allocated if the global OpenSSL initialization fails. This was possible in case of FIPS builds if the FIPS mode cannot be initialized. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
4f219667d7
commit
b36540dbeb
1 changed files with 4 additions and 0 deletions
|
@ -709,6 +709,8 @@ void * tls_init(const struct tls_config *conf)
|
||||||
"mode");
|
"mode");
|
||||||
ERR_load_crypto_strings();
|
ERR_load_crypto_strings();
|
||||||
ERR_print_errors_fp(stderr);
|
ERR_print_errors_fp(stderr);
|
||||||
|
os_free(tls_global);
|
||||||
|
tls_global = NULL;
|
||||||
return NULL;
|
return NULL;
|
||||||
} else
|
} else
|
||||||
wpa_printf(MSG_INFO, "Running in FIPS mode");
|
wpa_printf(MSG_INFO, "Running in FIPS mode");
|
||||||
|
@ -717,6 +719,8 @@ void * tls_init(const struct tls_config *conf)
|
||||||
if (conf && conf->fips_mode) {
|
if (conf && conf->fips_mode) {
|
||||||
wpa_printf(MSG_ERROR, "FIPS mode requested, but not "
|
wpa_printf(MSG_ERROR, "FIPS mode requested, but not "
|
||||||
"supported");
|
"supported");
|
||||||
|
os_free(tls_global);
|
||||||
|
tls_global = NULL;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif /* OPENSSL_FIPS */
|
#endif /* OPENSSL_FIPS */
|
||||||
|
|
Loading…
Reference in a new issue