EAPOL auth: Move radius_cui/identity freeing to eapol_auth_free()

These can get allocated within eapol_auth_alloc(), so it is more logical
to free them in eapol_auth_free() instead of ieee802_1x_free_station()
that ends up calling eapol_auth_free().

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2016-02-06 16:31:28 +02:00
parent 0ae86f9043
commit d689317ddb
2 changed files with 3 additions and 2 deletions

View file

@ -1165,10 +1165,8 @@ void ieee802_1x_free_station(struct hostapd_data *hapd, struct sta_info *sta)
#ifndef CONFIG_NO_RADIUS #ifndef CONFIG_NO_RADIUS
radius_msg_free(sm->last_recv_radius); radius_msg_free(sm->last_recv_radius);
radius_free_class(&sm->radius_class); radius_free_class(&sm->radius_class);
wpabuf_free(sm->radius_cui);
#endif /* CONFIG_NO_RADIUS */ #endif /* CONFIG_NO_RADIUS */
os_free(sm->identity);
eapol_auth_free(sm); eapol_auth_free(sm);
} }

View file

@ -884,6 +884,9 @@ void eapol_auth_free(struct eapol_state_machine *sm)
eloop_cancel_timeout(eapol_sm_step_cb, sm, NULL); eloop_cancel_timeout(eapol_sm_step_cb, sm, NULL);
if (sm->eap) if (sm->eap)
eap_server_sm_deinit(sm->eap); eap_server_sm_deinit(sm->eap);
wpabuf_free(sm->radius_cui);
os_free(sm->identity);
os_free(sm); os_free(sm);
} }