]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
HE: Fix HE capability check for PPE threshold present
authorSven Eckelmann <seckelmann@datto.com>
Wed, 12 Jun 2019 23:10:07 +0000 (01:10 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 22 Jun 2019 17:35:26 +0000 (20:35 +0300)
The the mask for PPE threshold present in the HE phy capability byte 6 is
0x80 and not 0x6. This incorrect mask breaks the length calculation and as
result the acceptance of the HE capabilities for STAs which either:

* don't have the PPE threshold present bit set AND the Codebook Size={7,5}
  MU Feedback or the Triggered SU Beamforming feedback bit set

* do have the PPE threshold present set AND neither the Codebook Size={7,5}
  MU Feedback nor the Triggered SU Beamforming feedback bit set

Fixes: 8f5fc369e263 ("HE: Fix HE Capabilities element variable length encoding")
Signed-off-by: Sven Eckelmann <seckelmann@datto.com>
src/ap/ieee802_11_he.c

index ba22a174a3a31b01e8bd60d53545bd7ad71ed42e..d3d3c1db3e3940490ed2277d9e0aacb3d4a0dc48 100644 (file)
@@ -23,7 +23,7 @@ static u8 ieee80211_he_ppet_size(u8 ppe_thres_hdr, const u8 *phy_cap_info)
        u8 sz = 0, ru;
 
        if ((phy_cap_info[HE_PHYCAP_PPE_THRESHOLD_PRESENT_IDX] &
-            HE_PHYCAP_PPE_THRESHOLD_PRESENT_IDX) == 0)
+            HE_PHYCAP_PPE_THRESHOLD_PRESENT) == 0)
                return 0;
 
        ru = (ppe_thres_hdr >> HE_PPE_THRES_RU_INDEX_BITMASK_SHIFT) &