summaryrefslogtreecommitdiffstats
path: root/net/mac80211/cfg.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-06-23 22:21:28 +0200
committerJohannes Berg <johannes.berg@intel.com>2022-07-15 11:43:15 +0200
commite2722d278ee3dbc589e4fdf1e7970f4d2b62c7dc (patch)
tree4fb9eaf37d2ffa207454c5ed1ef0d85dddc0d945 /net/mac80211/cfg.c
parentba323e29859458fb180e8a99b4382d0cbf72d47f (diff)
downloadlinux-e2722d278ee3dbc589e4fdf1e7970f4d2b62c7dc.tar.bz2
wifi: mac80211: fix key lookup
With the split into keys[]/deflink.gtk[] arrays, WEP keys are still installed into the keys[] array, but we didn't look them up there. This meant they weren't deleted correctly. Fix this by looking up the key there even if it's not pairwise so we can be sure we don't have it. Fixes: bfd8403adddd ("wifi: mac80211: reorg some iface data structs for MLD") Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r--net/mac80211/cfg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 3d66e40af7a9..aa3a1568c7fc 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -570,6 +570,10 @@ ieee80211_lookup_key(struct ieee80211_sub_if_data *sdata,
if (key)
return key;
+ /* or maybe it was a WEP key */
+ if (key_idx < NUM_DEFAULT_KEYS)
+ return rcu_dereference_check_key_mtx(local, sdata->keys[key_idx]);
+
return NULL;
}