Skip to content

Commit

Permalink
wifi: mac80211: check for station first in client probe
Browse files Browse the repository at this point in the history
[ Upstream commit 67dfa58 ]

When probing a client, first check if we have it, and then
check for the channel context, otherwise you can trigger
the warning there easily by probing when the AP isn't even
started yet. Since a client existing means the AP is also
operating, we can then keep the warning.

Also simplify the moved code a bit.

Reported-by: syzbot+999fac712d84878a7379@syzkaller.appspotmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
jmberg-intel authored and gregkh committed Sep 23, 2023
1 parent d7b0fe3 commit 7e1cda5
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions net/mac80211/cfg.c
Expand Up @@ -3991,19 +3991,20 @@ static int ieee80211_probe_client(struct wiphy *wiphy, struct net_device *dev,
mutex_lock(&local->mtx);

rcu_read_lock();
sta = sta_info_get_bss(sdata, peer);
if (!sta) {
ret = -ENOLINK;
goto unlock;
}

qos = sta->sta.wme;

chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
if (WARN_ON(!chanctx_conf)) {
ret = -EINVAL;
goto unlock;
}
band = chanctx_conf->def.chan->band;
sta = sta_info_get_bss(sdata, peer);
if (sta) {
qos = sta->sta.wme;
} else {
ret = -ENOLINK;
goto unlock;
}

if (qos) {
fc = cpu_to_le16(IEEE80211_FTYPE_DATA |
Expand Down

0 comments on commit 7e1cda5

Please sign in to comment.