|
@@ -2203,7 +2203,7 @@ static void ieee80211_auth_challenge(struct ieee80211_sub_if_data *sdata,
|
|
|
u32 tx_flags = 0;
|
|
|
|
|
|
pos = mgmt->u.auth.variable;
|
|
|
- ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), &elems);
|
|
|
+ ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), false, &elems);
|
|
|
if (!elems.challenge)
|
|
|
return;
|
|
|
auth_data->expected_transaction = 4;
|
|
@@ -2468,7 +2468,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
|
|
|
}
|
|
|
|
|
|
pos = mgmt->u.assoc_resp.variable;
|
|
|
- ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), &elems);
|
|
|
+ ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), false, &elems);
|
|
|
|
|
|
if (!elems.supp_rates) {
|
|
|
sdata_info(sdata, "no SuppRates element in AssocResp\n");
|
|
@@ -2637,7 +2637,7 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
|
|
|
capab_info, status_code, (u16)(aid & ~(BIT(15) | BIT(14))));
|
|
|
|
|
|
pos = mgmt->u.assoc_resp.variable;
|
|
|
- ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), &elems);
|
|
|
+ ieee802_11_parse_elems(pos, len - (pos - (u8 *) mgmt), false, &elems);
|
|
|
|
|
|
if (status_code == WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY &&
|
|
|
elems.timeout_int &&
|
|
@@ -2760,7 +2760,7 @@ static void ieee80211_rx_mgmt_probe_resp(struct ieee80211_sub_if_data *sdata,
|
|
|
return;
|
|
|
|
|
|
ieee802_11_parse_elems(mgmt->u.probe_resp.variable, len - baselen,
|
|
|
- &elems);
|
|
|
+ false, &elems);
|
|
|
|
|
|
ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems);
|
|
|
|
|
@@ -2843,7 +2843,7 @@ ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
|
|
|
if (ifmgd->assoc_data && ifmgd->assoc_data->need_beacon &&
|
|
|
ether_addr_equal(mgmt->bssid, ifmgd->assoc_data->bss->bssid)) {
|
|
|
ieee802_11_parse_elems(mgmt->u.beacon.variable,
|
|
|
- len - baselen, &elems);
|
|
|
+ len - baselen, false, &elems);
|
|
|
|
|
|
ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems);
|
|
|
ifmgd->assoc_data->have_beacon = true;
|
|
@@ -2953,7 +2953,7 @@ ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
|
|
|
|
|
|
ncrc = crc32_be(0, (void *)&mgmt->u.beacon.beacon_int, 4);
|
|
|
ncrc = ieee802_11_parse_elems_crc(mgmt->u.beacon.variable,
|
|
|
- len - baselen, &elems,
|
|
|
+ len - baselen, false, &elems,
|
|
|
care_about_ies, ncrc);
|
|
|
|
|
|
if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) {
|
|
@@ -3141,7 +3141,7 @@ void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
|
|
|
|
|
|
ieee802_11_parse_elems(
|
|
|
mgmt->u.action.u.chan_switch.variable,
|
|
|
- ies_len, &elems);
|
|
|
+ ies_len, true, &elems);
|
|
|
|
|
|
if (elems.parse_error)
|
|
|
break;
|
|
@@ -3159,7 +3159,7 @@ void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
|
|
|
|
|
|
ieee802_11_parse_elems(
|
|
|
mgmt->u.action.u.ext_chan_switch.variable,
|
|
|
- ies_len, &elems);
|
|
|
+ ies_len, true, &elems);
|
|
|
|
|
|
if (elems.parse_error)
|
|
|
break;
|