]> www.infradead.org Git - users/hch/configfs.git/commitdiff
wifi: iwlwifi: mvm: Fix associated initiator key setting
authorIlan Peer <ilan.peer@intel.com>
Tue, 18 Jun 2024 16:44:10 +0000 (19:44 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 26 Jun 2024 08:28:50 +0000 (10:28 +0200)
When setting the keys for secure measurement with an AP the station
is associated with, the TK should only be referenced and not copied.

In addition set the cipher only when the correct station is found.

Fixes: 626be4bf99f6 ("wifi: iwlwifi: mvm: modify iwl_mvm_ftm_set_secured_ranging() parameters")
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240618194245.be2a5327554d.Ie53220b075dacb23a8d073f6008aafd339368592@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c

index 00d447e40cc63c6f250a42cf6f7941966d1dd135..afd90a52d4ecbefe98cfab511bb2642481ca25a6 100644 (file)
@@ -732,10 +732,7 @@ static void iter(struct ieee80211_hw *hw,
 
        WARN_ON(!sta->mfp);
 
-       if (WARN_ON(key->keylen > sizeof(target->tk)))
-               return;
-
-       memcpy(target->tk, key->key, key->keylen);
+       target->tk = key->key;
        *target->cipher = iwl_mvm_cipher_to_location_cipher(key->cipher);
        WARN_ON(*target->cipher == IWL_LOCATION_CIPHER_INVALID);
 }
@@ -774,9 +771,7 @@ iwl_mvm_ftm_set_secured_ranging(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
                    !memcmp(vif->bss_conf.bssid, bssid, ETH_ALEN)) {
                        struct iwl_mvm_ftm_iter_data target;
 
-                       target.cipher = cipher;
                        target.bssid = bssid;
-                       target.tk = tk;
                        ieee80211_iter_keys(mvm->hw, vif, iter, &target);
                } else {
                        memcpy(tk, entry->tk, sizeof(entry->tk));