diff --git a/src/eap_server/eap_ttls.c b/src/eap_server/eap_ttls.c index 1ff9ea042..b097ab2ea 100644 --- a/src/eap_server/eap_ttls.c +++ b/src/eap_server/eap_ttls.c @@ -991,7 +991,13 @@ static void eap_ttls_process_phase2_eap_response(struct eap_sm *sm, sm->user_eap_method_index++].method; wpa_printf(MSG_DEBUG, "EAP-TTLS: try EAP type %d", next_type); - eap_ttls_phase2_eap_init(sm, data, next_type); + if (eap_ttls_phase2_eap_init(sm, data, next_type)) { + wpa_printf(MSG_DEBUG, "EAP-TTLS: Failed to " + "initialize EAP type %d", + next_type); + eap_ttls_state(data, FAILURE); + return; + } } else { eap_ttls_state(data, FAILURE); } @@ -1061,7 +1067,11 @@ static void eap_ttls_process_phase2_eap_response(struct eap_sm *sm, break; } - eap_ttls_phase2_eap_init(sm, data, next_type); + if (eap_ttls_phase2_eap_init(sm, data, next_type)) { + wpa_printf(MSG_DEBUG, "EAP-TTLS: Failed to initialize EAP " + "type %d", next_type); + eap_ttls_state(data, FAILURE); + } }