iwlwifi: mvm: avoid possible NULL pointer dereference
authorAvraham Stern <avraham.stern@intel.com>
Thu, 8 Oct 2020 15:09:48 +0000 (18:09 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 8 Oct 2020 17:09:39 +0000 (20:09 +0300)
When adding a PASN station, the station is added to the list only
if a TK is configured. Otherwise the station pointer should not be
used.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20201008180656.b8a493c168a7.Ie9a0f9dfd9e9c58c603dd06e45151119467a7804@changeid
drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c

index c794612..dd3662b 100644 (file)
@@ -354,18 +354,16 @@ int iwl_mvm_ftm_respoder_add_pasn_sta(struct iwl_mvm *mvm,
                        kfree(sta);
                        return ret;
                }
+
+               memcpy(sta->addr, addr, ETH_ALEN);
+               list_add_tail(&sta->list, &mvm->resp_pasn_list);
        }
 
        ret = iwl_mvm_ftm_responder_dyn_cfg_v3(mvm, vif, NULL, &hltk_data);
-       if (ret) {
-               if (sta)
-                       iwl_mvm_resp_del_pasn_sta(mvm, vif, sta);
-               return ret;
-       }
+       if (ret && sta)
+               iwl_mvm_resp_del_pasn_sta(mvm, vif, sta);
 
-       memcpy(sta->addr, addr, ETH_ALEN);
-       list_add_tail(&sta->list, &mvm->resp_pasn_list);
-       return 0;
+       return ret;
 }
 
 int iwl_mvm_ftm_resp_remove_pasn_sta(struct iwl_mvm *mvm,