wifi: mac80211: fix key lookup
authorJohannes Berg <johannes.berg@intel.com>
Thu, 23 Jun 2022 20:21:28 +0000 (22:21 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jul 2022 09:43:15 +0000 (11:43 +0200)
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>
net/mac80211/cfg.c

index 3d66e40af7a99b8944746e2b51e815833145a2ba..aa3a1568c7fc5cc42797f05fbececfeb90fd34ea 100644 (file)
@@ -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;
 }