• Martin Willi's avatar
    mac80211_hwsim: fix locking when iterating radios during ns exit · 628980e5
    Martin Willi authored
    The cleanup of radios during namespace exit has recently been reworked
    to directly delete a radio while temporarily releasing the spinlock,
    fixing a race condition between the work-queue execution and namespace
    exits. However, the temporary unlock allows unsafe modifications on the
    iterated list, resulting in a potential crash when continuing the
    iteration of additional radios.
    
    Move radios about to destroy to a temporary list, and clean that up
    after releasing the spinlock once iteration is complete.
    
    Fixes: 8cfd36a0 ("mac80211_hwsim: fix use-after-free bug in hwsim_exit_net")
    Signed-off-by: default avatarMartin Willi <martin@strongswan.org>
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    628980e5
mac80211_hwsim.c 103 KB