Fix TNC with EAP-TTLS

This was broken by 510c02d4a3 which added
validation of eap_ttls_phase2_eap_init() return value. The main problem
in the code trying to initialize a new phase 2 EAP method
unconditionally; this should only happen if there is a new method in the
inner method sequence.
This commit is contained in:
Jouni Malinen 2009-03-13 18:18:18 +02:00 committed by Jouni Malinen
parent 99bff8430f
commit 51853c899b
2 changed files with 6 additions and 6 deletions

View file

@ -12,6 +12,7 @@ ChangeLog for hostapd
Drives (UFD) (CONFIG_WPS_UFD=y) Drives (UFD) (CONFIG_WPS_UFD=y)
* fixed EAPOL/EAP reauthentication when using an external RADIUS * fixed EAPOL/EAP reauthentication when using an external RADIUS
authentication server authentication server
* fixed TNC with EAP-TTLS
2009-01-06 - v0.6.7 2009-01-06 - v0.6.7
* added support for Wi-Fi Protected Setup (WPS) * added support for Wi-Fi Protected Setup (WPS)

View file

@ -1045,6 +1045,11 @@ static void eap_ttls_process_phase2_eap_response(struct eap_sm *sm,
next_type = sm->user->methods[0].method; next_type = sm->user->methods[0].method;
sm->user_eap_method_index = 1; sm->user_eap_method_index = 1;
wpa_printf(MSG_DEBUG, "EAP-TTLS: try EAP type %d", next_type); wpa_printf(MSG_DEBUG, "EAP-TTLS: try EAP type %d", 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);
}
break; break;
case PHASE2_METHOD: case PHASE2_METHOD:
if (data->ttls_version > 0) { if (data->ttls_version > 0) {
@ -1066,12 +1071,6 @@ static void eap_ttls_process_phase2_eap_response(struct eap_sm *sm,
__func__, data->state); __func__, data->state);
break; break;
} }
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);
}
} }