mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7925: fix stale pointer comparisons in change_vif_links
In the error path of mt7925_change_vif_links(), the free: label iterates
over link_ids to clean up, but compares against `mconf` and `mlink`
which hold stale values from the last loop iteration rather than the
current link_id being freed.
Use array-indexed access (mconfs[link_id] / mlinks[link_id]) to compare
against the correct per-link pointers.
Fixes: 69acd6d910b0 ("wifi: mt76: mt7925: add mt7925_change_vif_links")
Tested-by: Marcin FM <[email protected]>
Tested-by: Cristian-Florin Radoi <[email protected]>
Tested-by: George Salukvadze <[email protected]>
Tested-by: Evgeny Kapusta <[email protected]>
Tested-by: Samu Toljamo <[email protected]>
Tested-by: Ariel Rosenfeld <[email protected]>
Tested-by: Chapuis Dario <[email protected]>
Tested-by: Thibaut François <[email protected]>
Tested-by: 张旭涵 <[email protected]>
Reviewed-by: Sean Wang <[email protected]>
Signed-off-by: Javier Tia <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
58331e62df
commit
bd493e29f7
+2
-2
@@ -2185,9 +2185,9 @@ free:
|
||||
rcu_assign_pointer(mvif->link_conf[link_id], NULL);
|
||||
rcu_assign_pointer(mvif->sta.link[link_id], NULL);
|
||||
|
||||
if (mconf != &mvif->bss_conf)
|
||||
if (mconfs[link_id] != &mvif->bss_conf)
|
||||
devm_kfree(dev->mt76.dev, mconfs[link_id]);
|
||||
if (mlink != &mvif->sta.deflink)
|
||||
if (mlinks[link_id] != &mvif->sta.deflink)
|
||||
devm_kfree(dev->mt76.dev, mlinks[link_id]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user