EAP-SIM peer: Fix memory leak on reauth error path
If init_for_reauth fails, the EAP-SIM peer state was not freed properly. Use eap_sim_deinit() to make sure all allocations get freed. This could be hit only if no random data could be derived for NONCE_MT. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
1a33c94ccc
commit
ea52a46e13
1 changed files with 1 additions and 1 deletions
|
@ -1135,7 +1135,7 @@ static void * eap_sim_init_for_reauth(struct eap_sm *sm, void *priv)
|
||||||
if (random_get_bytes(data->nonce_mt, EAP_SIM_NONCE_MT_LEN)) {
|
if (random_get_bytes(data->nonce_mt, EAP_SIM_NONCE_MT_LEN)) {
|
||||||
wpa_printf(MSG_WARNING, "EAP-SIM: Failed to get random data "
|
wpa_printf(MSG_WARNING, "EAP-SIM: Failed to get random data "
|
||||||
"for NONCE_MT");
|
"for NONCE_MT");
|
||||||
os_free(data);
|
eap_sim_deinit(sm, data);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
data->num_id_req = 0;
|
data->num_id_req = 0;
|
||||||
|
|
Loading…
Reference in a new issue