diff options
| -rw-r--r-- | core/sme/src/csr/csr_neighbor_roam.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 274c8c3f5494..5449d5d98115 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -397,6 +397,8 @@ csr_neighbor_roam_prepare_scan_profile_filter(tpAniSirGlobal pMac, pScanFilter->SSIDs.numOfSSIDs); if (NULL == pScanFilter->SSIDs.SSIDList) { sme_err("Scan Filter SSID mem alloc failed"); + qdf_mem_free(pScanFilter->BSSIDs.bssid); + pScanFilter->BSSIDs.bssid = NULL; return QDF_STATUS_E_NOMEM; } for (i = 0; i < roam_params->num_ssid_allowed_list; i++) { @@ -416,6 +418,8 @@ csr_neighbor_roam_prepare_scan_profile_filter(tpAniSirGlobal pMac, qdf_mem_malloc(sizeof(tCsrSSIDInfo)); if (NULL == pScanFilter->SSIDs.SSIDList) { sme_err("Scan Filter SSID mem alloc failed"); + qdf_mem_free(pScanFilter->BSSIDs.bssid); + pScanFilter->BSSIDs.bssid = NULL; return QDF_STATUS_E_NOMEM; } pScanFilter->SSIDs.SSIDList->handoffPermitted = 1; @@ -456,6 +460,8 @@ csr_neighbor_roam_prepare_scan_profile_filter(tpAniSirGlobal pMac, qdf_mem_malloc(num_ch * sizeof(uint8_t)); if (NULL == pScanFilter->ChannelInfo.ChannelList) { sme_err("Scan Filter Ch list mem alloc failed"); + qdf_mem_free(pScanFilter->BSSIDs.bssid); + pScanFilter->BSSIDs.bssid = NULL; qdf_mem_free(pScanFilter->SSIDs.SSIDList); pScanFilter->SSIDs.SSIDList = NULL; return QDF_STATUS_E_NOMEM; |
