Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e68d7c6 authored by Felix Fietkau's avatar Felix Fietkau Committed by Greg Kroah-Hartman
Browse files

wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta



[ Upstream commit 12b220a6171faf10638ab683a975cadcf1a352d6 ]

Avoid potential data corruption issues caused by uninitialized driver
private data structures.

Reported-by: default avatarBrian Coverstone <brian@mainsequence.net>
Fixes: 6a9d1b91 ("mac80211: add pre-RCU-sync sta removal driver operation")
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20230324120924.38412-3-nbd@nbd.name


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 4f2e22f6
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -969,6 +969,7 @@ static int __must_check __sta_info_destroy_part1(struct sta_info *sta)
	list_del_rcu(&sta->list);
	list_del_rcu(&sta->list);
	sta->removed = true;
	sta->removed = true;


	if (sta->uploaded)
		drv_sta_pre_rcu_remove(local, sta->sdata, sta);
		drv_sta_pre_rcu_remove(local, sta->sdata, sta);


	if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&
	if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN &&