Kaynağa Gözat

qcacld-3.0: Consider SSID from supplicant

There is a chance that SSID may be NULL in IE's received by driver
and driver publishes the same in association request which is not
expected. Always consider SSID from supplicant which is valid in
all scenarios to fix this.

Specific scenario:
OWE SSID is hidden in OWE transition mode. When supplicant detects
connection to OWE transition mode, it issues connect with required
SSID to driver. But that ssid does not present in driver scan cache
as it is hidden. Instead of this ssid, driver scan cache has NULL
entry. Driver uses this NULL entry in association request which is
not expected.

Change-Id: I7ceb712db87d6c7f73c7483f74d402b1ab3e30db
CRs-Fixed: 2197532
Padma, Santhosh Kumar 7 yıl önce
ebeveyn
işleme
7eecb5afbb
1 değiştirilmiş dosya ile 6 ekleme ve 7 silme
  1. 6 7
      core/sme/src/csr/csr_api_roam.c

+ 6 - 7
core/sme/src/csr/csr_api_roam.c

@@ -4415,13 +4415,12 @@ QDF_STATUS csr_roam_prepare_bss_config(tpAniSirGlobal pMac,
 		     sizeof(tSirMacCapabilityInfo));
 	/* get qos */
 	pBssConfig->qosType = csr_get_qo_s_from_bss_desc(pMac, pBssDesc, pIes);
-	/* get SSID */
-	if (pIes->SSID.present) {
-		qdf_mem_copy(&pBssConfig->SSID.ssId, pIes->SSID.ssid,
-			     pIes->SSID.num_ssid);
-		pBssConfig->SSID.length = pIes->SSID.num_ssid;
-	} else
-		pBssConfig->SSID.length = 0;
+	/* Take SSID always from profile */
+	qdf_mem_copy(&pBssConfig->SSID.ssId,
+		     pProfile->SSIDs.SSIDList->SSID.ssId,
+		     pProfile->SSIDs.SSIDList->SSID.length);
+	pBssConfig->SSID.length = pProfile->SSIDs.SSIDList->SSID.length;
+
 	if (csr_is_nullssid(pBssConfig->SSID.ssId, pBssConfig->SSID.length)) {
 		sme_warn("BSS desc SSID is a wild card");
 		/* Return failed if profile doesn't have an SSID either. */