]> www.infradead.org Git - users/hch/configfs.git/commitdiff
wifi: iwlwifi: mvm: check n_ssids before accessing the ssids
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Mon, 13 May 2024 10:27:12 +0000 (13:27 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 29 May 2024 13:30:13 +0000 (15:30 +0200)
In some versions of cfg80211, the ssids poinet might be a valid one even
though n_ssids is 0. Accessing the pointer in this case will cuase an
out-of-bound access. Fix this by checking n_ssids first.

Fixes: c1a7515393e4 ("iwlwifi: mvm: add adaptive dwell support")
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://msgid.link/20240513132416.6e4d1762bf0d.I5a0e6cc8f02050a766db704d15594c61fe583d45@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/scan.c

index 890d4d79b172b73acae1112a407c9ba703b3fe05..9739c38ef8241c6d822edd84e3f18c3954960370 100644 (file)
@@ -1313,7 +1313,7 @@ static void iwl_mvm_scan_umac_dwell(struct iwl_mvm *mvm,
                if (IWL_MVM_ADWELL_MAX_BUDGET)
                        cmd->v7.adwell_max_budget =
                                cpu_to_le16(IWL_MVM_ADWELL_MAX_BUDGET);
-               else if (params->ssids && params->ssids[0].ssid_len)
+               else if (params->n_ssids && params->ssids[0].ssid_len)
                        cmd->v7.adwell_max_budget =
                                cpu_to_le16(IWL_SCAN_ADWELL_MAX_BUDGET_DIRECTED_SCAN);
                else
@@ -1418,7 +1418,7 @@ iwl_mvm_scan_umac_dwell_v11(struct iwl_mvm *mvm,
        if (IWL_MVM_ADWELL_MAX_BUDGET)
                general_params->adwell_max_budget =
                        cpu_to_le16(IWL_MVM_ADWELL_MAX_BUDGET);
-       else if (params->ssids && params->ssids[0].ssid_len)
+       else if (params->n_ssids && params->ssids[0].ssid_len)
                general_params->adwell_max_budget =
                        cpu_to_le16(IWL_SCAN_ADWELL_MAX_BUDGET_DIRECTED_SCAN);
        else