Simplify HT Capabilities element parsing
Check the element length in the parser and remove the length field from struct ieee802_11_elems since the element is of fixed length. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
b39a05913a
commit
baae4cb9b4
11 changed files with 10 additions and 20 deletions
|
@ -1577,9 +1577,7 @@ static int copy_supp_rates(const struct wpa_eapol_ie_parse *kde,
|
|||
static int copy_peer_ht_capab(const struct wpa_eapol_ie_parse *kde,
|
||||
struct wpa_tdls_peer *peer)
|
||||
{
|
||||
if (!kde->ht_capabilities ||
|
||||
kde->ht_capabilities_len <
|
||||
sizeof(struct ieee80211_ht_capabilities) ) {
|
||||
if (!kde->ht_capabilities) {
|
||||
wpa_printf(MSG_DEBUG, "TDLS: No supported ht capabilities "
|
||||
"received");
|
||||
return 0;
|
||||
|
|
|
@ -553,9 +553,9 @@ int wpa_supplicant_parse_ies(const u8 *buf, size_t len,
|
|||
} else if (*pos == WLAN_EID_EXT_SUPP_RATES) {
|
||||
ie->ext_supp_rates = pos;
|
||||
ie->ext_supp_rates_len = pos[1] + 2;
|
||||
} else if (*pos == WLAN_EID_HT_CAP) {
|
||||
} else if (*pos == WLAN_EID_HT_CAP &&
|
||||
pos[1] >= sizeof(struct ieee80211_ht_capabilities)) {
|
||||
ie->ht_capabilities = pos + 2;
|
||||
ie->ht_capabilities_len = pos[1];
|
||||
} else if (*pos == WLAN_EID_VHT_AID) {
|
||||
if (pos[1] >= 2)
|
||||
ie->aid = WPA_GET_LE16(pos + 2) & 0x3fff;
|
||||
|
|
|
@ -50,7 +50,6 @@ struct wpa_eapol_ie_parse {
|
|||
const u8 *ext_supp_rates;
|
||||
size_t ext_supp_rates_len;
|
||||
const u8 *ht_capabilities;
|
||||
size_t ht_capabilities_len;
|
||||
const u8 *vht_capabilities;
|
||||
size_t vht_capabilities_len;
|
||||
const u8 *supp_channels;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue