RSN+WPA: Fix RSNE removing in EAPOL-Key msg 3/4 when RSNXE is included
When the AP advertised RSNE, RSNXE, and WPA IE, hostapd incorrectly removed the RSNE in the EAPOL-Key msg 3/4 if the STA associates with WPA, leaving only RSNXE instead of WPA IE. WPA STA fails to connect to such AP as the WPA IE is missing. Since RSNXE is not really used in non-RSN connection, just remove it here with RSNE. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
This commit is contained in:
parent
dc19779592
commit
fa859ebb19
1 changed files with 4 additions and 0 deletions
|
@ -3393,6 +3393,8 @@ SM_STATE(WPA_PTK, PTKINITNEGOTIATING)
|
|||
wpa_ie_len > wpa_ie[1] + 2U && wpa_ie[0] == WLAN_EID_RSN) {
|
||||
/* WPA-only STA, remove RSN IE and possible MDIE */
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
if (wpa_ie[0] == WLAN_EID_RSNX)
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
if (wpa_ie[0] == WLAN_EID_MOBILITY_DOMAIN)
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
wpa_ie_len = wpa_ie[1] + 2;
|
||||
|
@ -5397,6 +5399,8 @@ int wpa_auth_resend_m3(struct wpa_state_machine *sm,
|
|||
wpa_ie_len > wpa_ie[1] + 2 && wpa_ie[0] == WLAN_EID_RSN) {
|
||||
/* WPA-only STA, remove RSN IE and possible MDIE */
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
if (wpa_ie[0] == WLAN_EID_RSNX)
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
if (wpa_ie[0] == WLAN_EID_MOBILITY_DOMAIN)
|
||||
wpa_ie = wpa_ie + wpa_ie[1] + 2;
|
||||
wpa_ie_len = wpa_ie[1] + 2;
|
||||
|
|
Loading…
Reference in a new issue