hostapd: fix uninitialized stack variable on CSA
authorFelix Fietkau <nbd@nbd.name>
Mon, 12 Jul 2021 11:31:04 +0000 (13:31 +0200)
committerFelix Fietkau <nbd@nbd.name>
Mon, 12 Jul 2021 11:34:08 +0000 (13:34 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch [new file with mode: 0644]

diff --git a/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch b/package/network/services/hostapd/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch
new file mode 100644 (file)
index 0000000..c7da33f
--- /dev/null
@@ -0,0 +1,25 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Thu, 8 Jul 2021 16:33:03 +0200
+Subject: [PATCH] hostapd: fix use of uninitialized stack variables
+
+When a CSA is performed on an 80 MHz channel, hostapd_change_config_freq
+unconditionally calls hostapd_set_oper_centr_freq_seg0/1_idx with seg0/1
+filled by ieee80211_freq_to_chan.
+However, if ieee80211_freq_to_chan fails (because the freq is 0 or invalid),
+seg0/1 remains uninitialized and filled with stack garbage, causing errors
+such as "hostapd: 80 MHz: center segment 1 configured"
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -3431,7 +3431,7 @@ static int hostapd_change_config_freq(st
+                                     struct hostapd_freq_params *old_params)
+ {
+       int channel;
+-      u8 seg0, seg1;
++      u8 seg0 = 0, seg1 = 0;
+       struct hostapd_hw_modes *mode;
+       if (!params->channel) {