Skip to content

Commit

Permalink
hostapd: backport upstream patch to fix setting BSS color
Browse files Browse the repository at this point in the history
Without this patch, we get the following error:

Mon Dec 23 11:35:44 2024 daemon.err hostapd: nl80211: kernel reports: integer out of range

As updating hostapd would be too complex and requires further testing,
we backport this simple upstream fix instead.

Fixes: openwrt/openwrt#16680
Signed-off-by: Rany Hany <[email protected]>
Link: openwrt/openwrt#17590
Signed-off-by: Petr Štetiar <[email protected]>
  • Loading branch information
rany2 authored and ynezz committed Jan 13, 2025
1 parent 62af69f commit 5ce1af9
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 3 deletions.
2 changes: 1 addition & 1 deletion package/network/services/hostapd/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk

PKG_NAME:=hostapd
PKG_RELEASE:=2
PKG_RELEASE:=3

PKG_SOURCE_URL:=https://w1.fi/hostap.git
PKG_SOURCE_PROTO:=git
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
sm->eap_if->aaaFail = true;
--- a/src/ap/sta_info.h
+++ b/src/ap/sta_info.h
@@ -95,6 +95,7 @@ struct sta_info {
@@ -94,6 +94,7 @@ struct sta_info {
u8 supported_rates[WLAN_SUPP_RATES_MAX];
int supported_rates_len;
u8 qosinfo; /* Valid when WLAN_STA_WMM is set */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
+
--- a/src/ap/sta_info.h
+++ b/src/ap/sta_info.h
@@ -408,23 +408,8 @@ int ap_sta_re_add(struct hostapd_data *h
@@ -409,23 +409,8 @@ int ap_sta_re_add(struct hostapd_data *h

void ap_free_sta_pasn(struct hostapd_data *hapd, struct sta_info *sta);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
From 161327f91d956771996c96ea1b6e4e1cb8dc074c Mon Sep 17 00:00:00 2001
From: Stone Zhang <[email protected]>
Date: Mon, 14 Oct 2024 18:47:32 +0800
Subject: [PATCH] hostapd: Fix clearing up settings for color switch

Settings for color switch (struct cca_settings settings)
is used without zero clearing, which causes the member
settings->ubpr->unsol_bcast_probe_resp_intervalettings
to be a random value. It is againsts the NLA policy of
NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT and causes
BSS color switch failure.

Fixes: 654d2395dddf ("BSS coloring: Handling of collision events and triggering CCA")
Signed-off-by: Stone Zhang <[email protected]>
---
src/ap/hostapd.c | 1 +
1 file changed, 1 insertion(+)

--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -4813,6 +4813,7 @@ static void hostapd_switch_color_timeout
struct cca_settings settings;
int ret;

+ os_memset(&settings, 0, sizeof(settings));
hostapd_cleanup_cca_params(bss);
bss->cca_color = r;
bss->cca_count = 10;

0 comments on commit 5ce1af9

Please sign in to comment.