[PATCH] HE: Fix HE capability check for PPE threshold present

Sven Eckelmann sven at narfation.org
Wed Jun 12 11:53:04 PDT 2019


From: Sven Eckelmann <seckelmann at datto.com>

The the mask for PPE threshold present in the HE phy capability byte 6 is
0x80 and not 0x6. The latter breaks the length calculation and the
acceptance of the HE capabilities for STAs which either:

* don't have PPE threshold present AND the highest bit of the sounding
  dimension <= 80 Mhz or lowest bit of the sounding dimension > 80Mhz set
* do have PPE threshold present AND not the highest bit of the sounding
  dimension <= 80 Mhz and not lowest bit of the sounding dimension > 80Mhz
  set

Fixes: 8f5fc369e263 ("HE: Fix HE Capabilities element variable length encoding")
Signed-off-by: Sven Eckelmann <seckelmann at datto.com>
---
Cc: John Crispin <john at phrozen.org>
Cc: Shashidhar Lakkavalli <slakkavalli at datto.com>
---
 src/ap/ieee802_11_he.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/ap/ieee802_11_he.c b/src/ap/ieee802_11_he.c
index ba22a174a..d3d3c1db3 100644
--- a/src/ap/ieee802_11_he.c
+++ b/src/ap/ieee802_11_he.c
@@ -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) &
-- 
2.20.1




More information about the Hostap mailing list