summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2023-09-02 19:36:21 +0200
committerFelix Fietkau <nbd@nbd.name>2023-09-02 19:39:24 +0200
commit3b44e0a4c102d52a6c81451d1a2fd62d7405cc01 (patch)
tree27763811b22461db34095fad2d9fb6153fa568b7
parent2021ca0a02ef8b473058853e96451a8f388ba1e4 (diff)
hostapd: fix parsing HT secondary channel offset
It returned the wrong value when using HT40- Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/hostapd/src/wpa_supplicant/ucode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/package/network/services/hostapd/src/wpa_supplicant/ucode.c b/package/network/services/hostapd/src/wpa_supplicant/ucode.c
index d0a78d1625..d120ed6217 100644
--- a/package/network/services/hostapd/src/wpa_supplicant/ucode.c
+++ b/package/network/services/hostapd/src/wpa_supplicant/ucode.c
@@ -211,12 +211,13 @@ uc_wpas_iface_status(uc_vm_t *vm, size_t nargs)
ie = wpa_bss_get_ie(bss, WLAN_EID_HT_OPERATION);
if (ie && ie[1] >= 2) {
const struct ieee80211_ht_operation *ht_oper;
+ int sec;
ht_oper = (const void *) (ie + 2);
- if (ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE)
+ sec = ht_oper->ht_param & HT_INFO_HT_PARAM_SECONDARY_CHNL_OFF_MASK;
+ if (sec == HT_INFO_HT_PARAM_SECONDARY_CHNL_ABOVE)
sec_chan = 1;
- else if (ht_oper->ht_param &
- HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW)
+ else if (sec == HT_INFO_HT_PARAM_SECONDARY_CHNL_BELOW)
sec_chan = -1;
}