Skip to content

Commit

Permalink
wifi: cfg80211: avoid double free if updating BSS fails
Browse files Browse the repository at this point in the history
cfg80211_update_known_bss will always consume the passed IEs. As such,
cfg80211_update_assoc_bss_entry also needs to always set the pointers to
NULL so that no double free can occur.

Note that hitting this would probably require being connected to a
hidden BSS which is then doing a channel switch while also switching to
be not hidden anymore at the same time.

Signed-off-by: Benjamin Berg <[email protected]>
Reviewed-by: Johannes Berg <[email protected]>
Signed-off-by: Miri Korenblit <[email protected]>
Link: https://msgid.link/20231220133549.8891edb28d51.Id09c5145363e990ff5237decd58296302e2d53c8@changeid
Signed-off-by: Johannes Berg <[email protected]>
  • Loading branch information
benzea authored and jmberg-intel committed Dec 21, 2023
1 parent 31c5e92 commit acc44cb
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions net/wireless/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -3194,10 +3194,9 @@ void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev,

if (new) {
/* to save time, update IEs for transmitting bss only */
if (cfg80211_update_known_bss(rdev, cbss, new, false)) {
new->pub.proberesp_ies = NULL;
new->pub.beacon_ies = NULL;
}
cfg80211_update_known_bss(rdev, cbss, new, false);
new->pub.proberesp_ies = NULL;
new->pub.beacon_ies = NULL;

list_for_each_entry_safe(nontrans_bss, tmp,
&new->pub.nontrans_list,
Expand Down

0 comments on commit acc44cb

Please sign in to comment.