[PATCH] wifi: mac80211: reject opmode notification for unsupported channel widths

Moon Hee Lee posted 1 patch 3 months, 1 week ago
net/mac80211/cfg.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
[PATCH] wifi: mac80211: reject opmode notification for unsupported channel widths
Posted by Moon Hee Lee 3 months, 1 week ago
#syz test: git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git main

---
 net/mac80211/cfg.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index d9d88f2f2831..f2e96eb07e8f 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1959,6 +1959,21 @@ static int sta_link_apply_parameters(struct ieee80211_local *local,
 	ieee80211_sta_init_nss(link_sta);
 
 	if (params->opmode_notif_used) {
+		enum nl80211_chan_width width = link->conf->chanreq.oper.width;
+
+		switch (width) {
+		case NL80211_CHAN_WIDTH_20_NOHT:
+		case NL80211_CHAN_WIDTH_20:
+		case NL80211_CHAN_WIDTH_40:
+		case NL80211_CHAN_WIDTH_80:
+		case NL80211_CHAN_WIDTH_160:
+		case NL80211_CHAN_WIDTH_80P80:
+		case NL80211_CHAN_WIDTH_320:
+			break;
+		default:
+			return -EINVAL;
+		}
+
 		/* returned value is only needed for rc update, but the
 		 * rc isn't initialized here yet, so ignore it
 		 */
-- 
2.43.0
Re: [syzbot] [wireless?] WARNING in _ieee80211_sta_cur_vht_bw
Posted by syzbot 3 months, 1 week ago
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-by: syzbot+ededba317ddeca8b3f08@syzkaller.appspotmail.com
Tested-by: syzbot+ededba317ddeca8b3f08@syzkaller.appspotmail.com

Tested on:

commit:         e34a79b9 Merge tag 'net-6.16-rc4' of git://git.kernel...
git tree:       git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless.git main
console output: https://syzkaller.appspot.com/x/log.txt?x=1290b982580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=cd6a0fc5a3df8326
dashboard link: https://syzkaller.appspot.com/bug?extid=ededba317ddeca8b3f08
compiler:       Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6
patch:          https://syzkaller.appspot.com/x/patch.diff?x=13b39770580000

Note: testing is done by a robot and is best-effort only.