wifi: mac80211: add consistency check for compat chandef
authorAnjaneyulu <pagadala.yesu.anjaneyulu@intel.com>
Fri, 16 Jun 2023 06:53:56 +0000 (09:53 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 19 Jun 2023 10:05:28 +0000 (12:05 +0200)
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>
net/mac80211/chan.c

index 168bf3e..6895275 100644 (file)
@@ -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 ||