hostapd: Fix clearing settings for color switch

cca_settings is used without zero initialization, which may
introduce random values and result in invalid nl80211
attributes.

Without this fix, BSS color switch may fail completely and
the feature becomes non-functional. Initialize the structure
before use.

Signed-off-by: Wei Zhang <wei.zhang@oss.qualcomm.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Wei Zhang
2026-05-27 01:59:58 -07:00
committed by Khem Raj
parent e63ecd6b7c
commit feb24a676b
2 changed files with 35 additions and 0 deletions
@@ -0,0 +1,34 @@
From 161327f91d956771996c96ea1b6e4e1cb8dc074c Mon Sep 17 00:00:00 2001
From: Stone Zhang <quic_stonez@quicinc.com>
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 <quic_stonez@quicinc.com>
Upstream-Status: Backport [https://w1.fi/cgit/hostap.git/commit/?id=161327f91d956771996c96ea1b6e4e1cb8dc074c]
---
src/ap/hostapd.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index 5ba2cab2c..90e93b6dc 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
@@ -4768,6 +4768,7 @@ static void hostapd_switch_color_timeout_handler(void *eloop_data,
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;
--
2.45.2
@@ -9,6 +9,7 @@ DEPENDS = "libnl openssl"
SRC_URI = " \
http://w1.fi/releases/hostapd-${PV}.tar.gz \
file://0001-Include-base64-for-hostapd-CONFIG_SAE_PK-builds.patch \
file://0002-hostapd-Fix-clearing-up-settings-for-color-switch.patch \
file://defconfig \
file://init \
file://hostapd.service \