Browse Source

Always clear EAP altAccept and altReject variables on new association

Previously, this was only done when the new connection is using
WPA-Personal. However, it looks like it was possible to trigger an
infinite busy loop if altAccept or altReject were left set to true and
an EAPOL frame is received (eapolEap is set to true). Clearing altAccept
and altReject for each association prevents this loop from happening in
the beginning of the next association.
Jouni Malinen 16 years ago
parent
commit
0a40ec6a90
1 changed files with 3 additions and 4 deletions
  1. 3 4
      wpa_supplicant/wpa_supplicant.c

+ 3 - 4
wpa_supplicant/wpa_supplicant.c

@@ -253,10 +253,9 @@ void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)
 	struct eapol_config eapol_conf;
 	struct wpa_ssid *ssid = wpa_s->current_ssid;
 
-	if (wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt)) {
-		eapol_sm_notify_eap_success(wpa_s->eapol, FALSE);
-		eapol_sm_notify_eap_fail(wpa_s->eapol, FALSE);
-	}
+	eapol_sm_notify_eap_success(wpa_s->eapol, FALSE);
+	eapol_sm_notify_eap_fail(wpa_s->eapol, FALSE);
+
 	if (wpa_s->key_mgmt == WPA_KEY_MGMT_NONE ||
 	    wpa_s->key_mgmt == WPA_KEY_MGMT_WPA_NONE)
 		eapol_sm_notify_portControl(wpa_s->eapol, ForceAuthorized);