浏览代码

mac80211: check csa wiphy flag in ibss before switching

When external CSA IEs are received (beacons or action messages), a
channel switch is triggered as well. This should only be allowed on
devices which actually support channel switches, otherwise disconnect.
(For the corresponding userspace invocation, the wiphy flag is checked
in nl80211).

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Simon Wunderlich 11 年之前
父节点
当前提交
0834ae3c3a
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      net/mac80211/ibss.c

+ 4 - 0
net/mac80211/ibss.c

@@ -823,6 +823,10 @@ ieee80211_ibss_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 	if (err)
 	if (err)
 		return false;
 		return false;
 
 
+	/* channel switch is not supported, disconnect */
+	if (!(sdata->local->hw.wiphy->flags & WIPHY_FLAG_HAS_CHANNEL_SWITCH))
+		goto disconnect;
+
 	params.count = csa_ie.count;
 	params.count = csa_ie.count;
 	params.chandef = csa_ie.chandef;
 	params.chandef = csa_ie.chandef;