mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
AP: Place the WPA IE in the correct order
In case the protocol used for the BSS is WPA, the WPA vendor IE should be placed after all the non vendor IEs. Fix this for Beacon and Probe Response frames. Signed-off-by: Ilan Peer <ilan.peer@intel.com>
This commit is contained in:
parent
170244a1cd
commit
f13aaf33fb
@ -453,8 +453,9 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
|
|||||||
/* Extended supported rates */
|
/* Extended supported rates */
|
||||||
pos = hostapd_eid_ext_supp_rates(hapd, pos);
|
pos = hostapd_eid_ext_supp_rates(hapd, pos);
|
||||||
|
|
||||||
/* RSN, MDIE, WPA */
|
/* RSN, MDIE */
|
||||||
pos = hostapd_eid_wpa(hapd, pos, epos - pos);
|
if (hapd->conf->wpa != WPA_PROTO_WPA)
|
||||||
|
pos = hostapd_eid_wpa(hapd, pos, epos - pos);
|
||||||
|
|
||||||
pos = hostapd_eid_bss_load(hapd, pos, epos - pos);
|
pos = hostapd_eid_bss_load(hapd, pos, epos - pos);
|
||||||
|
|
||||||
@ -517,6 +518,10 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
|
|||||||
pos = hostapd_eid_vendor_vht(hapd, pos);
|
pos = hostapd_eid_vendor_vht(hapd, pos);
|
||||||
#endif /* CONFIG_IEEE80211AC */
|
#endif /* CONFIG_IEEE80211AC */
|
||||||
|
|
||||||
|
/* WPA */
|
||||||
|
if (hapd->conf->wpa == WPA_PROTO_WPA)
|
||||||
|
pos = hostapd_eid_wpa(hapd, pos, epos - pos);
|
||||||
|
|
||||||
/* Wi-Fi Alliance WMM */
|
/* Wi-Fi Alliance WMM */
|
||||||
pos = hostapd_eid_wmm(hapd, pos);
|
pos = hostapd_eid_wmm(hapd, pos);
|
||||||
|
|
||||||
@ -1152,9 +1157,11 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd,
|
|||||||
/* Extended supported rates */
|
/* Extended supported rates */
|
||||||
tailpos = hostapd_eid_ext_supp_rates(hapd, tailpos);
|
tailpos = hostapd_eid_ext_supp_rates(hapd, tailpos);
|
||||||
|
|
||||||
/* RSN, MDIE, WPA */
|
/* RSN, MDIE */
|
||||||
tailpos = hostapd_eid_wpa(hapd, tailpos, tail + BEACON_TAIL_BUF_SIZE -
|
if (hapd->conf->wpa != WPA_PROTO_WPA)
|
||||||
tailpos);
|
tailpos = hostapd_eid_wpa(hapd, tailpos,
|
||||||
|
tail + BEACON_TAIL_BUF_SIZE -
|
||||||
|
tailpos);
|
||||||
|
|
||||||
tailpos = hostapd_eid_rm_enabled_capab(hapd, tailpos,
|
tailpos = hostapd_eid_rm_enabled_capab(hapd, tailpos,
|
||||||
tail + BEACON_TAIL_BUF_SIZE -
|
tail + BEACON_TAIL_BUF_SIZE -
|
||||||
@ -1223,6 +1230,12 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd,
|
|||||||
tailpos = hostapd_eid_vendor_vht(hapd, tailpos);
|
tailpos = hostapd_eid_vendor_vht(hapd, tailpos);
|
||||||
#endif /* CONFIG_IEEE80211AC */
|
#endif /* CONFIG_IEEE80211AC */
|
||||||
|
|
||||||
|
/* WPA */
|
||||||
|
if (hapd->conf->wpa == WPA_PROTO_WPA)
|
||||||
|
tailpos = hostapd_eid_wpa(hapd, tailpos,
|
||||||
|
tail + BEACON_TAIL_BUF_SIZE -
|
||||||
|
tailpos);
|
||||||
|
|
||||||
/* Wi-Fi Alliance WMM */
|
/* Wi-Fi Alliance WMM */
|
||||||
tailpos = hostapd_eid_wmm(hapd, tailpos);
|
tailpos = hostapd_eid_wmm(hapd, tailpos);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user