diff options
author | Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com> | 2023-06-16 08:53:56 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2023-06-19 12:05:28 +0200 |
commit | 05050a2bc0c1599e95ef15a6ae34cb68ceabb06a (patch) | |
tree | 6f37406817d06c48684b796cc6572ba6c1ee4b95 /net | |
parent | wifi: mac80211: stop passing cbss to parser (diff) | |
download | linux-05050a2bc0c1599e95ef15a6ae34cb68ceabb06a.tar.xz linux-05050a2bc0c1599e95ef15a6ae34cb68ceabb06a.zip |
wifi: mac80211: add consistency check for compat chandef
Add NULL check for compat variable to avoid crash in
cfg80211_chandef_compatible() if it got called with
some mixed up channel context where not all the users
compatible with each other, which shouldn't happen.
Signed-off-by: Anjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230616094948.ae0f10dfd36b.Iea98c74aeb87bf6ef49f6d0c8687bba0dbea2abd@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/chan.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index 168bf3edd4b4..68952752b599 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -802,6 +802,11 @@ void ieee80211_recalc_chanctx_chantype(struct ieee80211_local *local, } } + if (WARN_ON_ONCE(!compat)) { + rcu_read_unlock(); + return; + } + /* TDLS peers can sometimes affect the chandef width */ list_for_each_entry_rcu(sta, &local->sta_list, list) { if (!sta->uploaded || |