wifi: mac80211: fix potential deadlock in ieee80211_key_link()

Add the missing unlock before return in the error handling case.

Fixes: ccdde7c74f ("wifi: mac80211: properly implement MLO key handling")
Signed-off-by: Sun Ke <sunke32@huawei.com>
Link: https://lore.kernel.org/r/20220827022452.823381-1-sunke32@huawei.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Sun Ke 2022-08-27 10:24:52 +08:00 committed by Johannes Berg
parent 643952f3ec
commit 7c13844c3b

View file

@ -865,8 +865,10 @@ int ieee80211_key_link(struct ieee80211_key *key,
if (link_id >= 0) {
link_sta = rcu_dereference_protected(sta->link[link_id],
lockdep_is_held(&sta->local->sta_mtx));
if (!link_sta)
return -ENOLINK;
if (!link_sta) {
ret = -ENOLINK;
goto out;
}
}
old_key = key_mtx_dereference(sdata->local, link_sta->gtk[idx]);