Skip to content
Commit 41431e40 authored by Nikolay Aleksandrov's avatar Nikolay Aleksandrov Committed by Ben Hutchings
Browse files

bridge: fix br_stp_set_bridge_priority race conditions

[ Upstream commit 2dab80a8 ]

After the ->set() spinlocks were removed br_stp_set_bridge_priority
was left running without any protection when used via sysfs. It can
race with port add/del and could result in use-after-free cases and
corrupted lists. Tested by running port add/del in a loop with stp
enabled while setting priority in a loop, crashes are easily
reproducible.
The spinlocks around sysfs ->set() were removed in commit:
14f98f25 ("bridge: range check STP parameters")
There's also a race condition in the netlink priority support that is
fixed by this change, but it was introduced recently and the fixes tag
covers it, just in case it's needed the commit is:
af615762

 ("bridge: add ageing_time, stp_state, priority over netlink")

Signed-off-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
Fixes: 14f98f25

 ("bridge: range check STP parameters")
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent f563f5e0
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment