Parcourir la source

Update RSN supplicant MAC address on driver reinitialization

I have a test case where I remove and insert another network adapter
between two connections to AP. The interface get the same interface name
but switches macadresses between the connections. When running WPA2 I
got a failure in EAPOL negotiation and found out that the reason for
this was that the supplicant did not update the MAC address in the
correct place.
Johan Hedlund il y a 13 ans
Parent
commit
f98eb880eb
1 fichiers modifiés avec 1 ajouts et 2 suppressions
  1. 1 2
      wpa_supplicant/wpa_supplicant.c

+ 1 - 2
wpa_supplicant/wpa_supplicant.c

@@ -2092,6 +2092,7 @@ int wpa_supplicant_driver_init(struct wpa_supplicant *wpa_s)
 
 	wpa_dbg(wpa_s, MSG_DEBUG, "Own MAC address: " MACSTR,
 		MAC2STR(wpa_s->own_addr));
+	wpa_sm_set_own_addr(wpa_s->wpa, wpa_s->own_addr);
 
 	if (wpa_s->bridge_ifname[0]) {
 		wpa_dbg(wpa_s, MSG_DEBUG, "Receiving packets from bridge "
@@ -2339,8 +2340,6 @@ next_driver:
 		return -1;
 	}
 
-	wpa_sm_set_own_addr(wpa_s->wpa, wpa_s->own_addr);
-
 	if (wpas_wps_init(wpa_s))
 		return -1;