wifi: nl80211: fix NULL-ptr deref in offchan check
authorJohannes Berg <johannes.berg@intel.com>
Wed, 1 Mar 2023 10:09:29 +0000 (12:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 10 Mar 2023 10:46:22 +0000 (11:46 +0100)
If, e.g. in AP mode, the link was already created by userspace
but not activated yet, it has a chandef but the chandef isn't
valid and has no channel. Check for this and ignore this link.

Fixes: 7b0a0e3c3a88 ("wifi: cfg80211: do some rework towards MLO link APIs")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230301115906.71bd4803fbb9.Iee39c0f6c2d3a59a8227674dc55d52e38b1090cf@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/nl80211.c

index 112b4bb009c80f648748256b322d9a5e7a7e8514..51f6582eff7bc67c0875ad28c23e03cdcf0ba95a 100644 (file)
@@ -8901,7 +8901,7 @@ static bool cfg80211_off_channel_oper_allowed(struct wireless_dev *wdev,
                struct cfg80211_chan_def *chandef;
 
                chandef = wdev_chandef(wdev, link_id);
-               if (!chandef)
+               if (!chandef || !chandef->chan)
                        continue;
 
                /*