From 7eecb5afbbd0b2953798037d7a83d82c8578c47d Mon Sep 17 00:00:00 2001 From: "Padma, Santhosh Kumar" Date: Wed, 28 Feb 2018 19:37:20 +0530 Subject: [PATCH] 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 --- core/sme/src/csr/csr_api_roam.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 56b8e744353e..bd60bdec1523 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/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. */