wifi: cfg80211: fix assoc response warning on failed links
authorJohannes Berg <johannes.berg@intel.com>
Wed, 18 Oct 2023 09:42:51 +0000 (11:42 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 11:25:30 +0000 (13:25 +0200)
The warning here shouldn't be done before we even set the
bss field (or should've used the input data). Move the
assignment before the warning to fix it.

We noticed this now because of Wen's bugfix, where the bug
fixed there had previously hidden this other bug.

Fixes: 53ad07e9823b ("wifi: cfg80211: support reporting failed links")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/mlme.c

index 3e2c398abddccb3ae0ac9926a374d8dacfe6d1f0..55a1d3633853fae0beb1f6f0fc6b539aa45a4a6c 100644 (file)
@@ -43,10 +43,11 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
 
        for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
                cr.links[link_id].status = data->links[link_id].status;
+               cr.links[link_id].bss = data->links[link_id].bss;
+
                WARN_ON_ONCE(cr.links[link_id].status != WLAN_STATUS_SUCCESS &&
                             (!cr.ap_mld_addr || !cr.links[link_id].bss));
 
-               cr.links[link_id].bss = data->links[link_id].bss;
                if (!cr.links[link_id].bss)
                        continue;
                cr.links[link_id].bssid = data->links[link_id].bss->bssid;