wifi: cfg80211: consume both probe response and beacon IEs
authorBenjamin Berg <benjamin.berg@intel.com>
Mon, 11 Dec 2023 07:05:28 +0000 (09:05 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 12 Dec 2023 09:37:01 +0000 (10:37 +0100)
When doing a channel switch, cfg80211_update_known_bss may be called
with a BSS where both proberesp_ies and beacon_ies is set. If that
happens, both need to be consumed.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20231211085121.07a88656d7df.I0fe9fc599382de0eccf96455617e377d9c231966@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c

index 3e3ba0ddb83efba821ea4a4553e4ceab50652a62..3d260c99c348028f38de90d8306a51f16b2a5aa8 100644 (file)
@@ -1749,7 +1749,9 @@ cfg80211_update_known_bss(struct cfg80211_registered_device *rdev,
                                   new->pub.proberesp_ies);
                if (old)
                        kfree_rcu((struct cfg80211_bss_ies *)old, rcu_head);
-       } else if (rcu_access_pointer(new->pub.beacon_ies)) {
+       }
+
+       if (rcu_access_pointer(new->pub.beacon_ies)) {
                const struct cfg80211_bss_ies *old;
 
                if (known->pub.hidden_beacon_bss &&