From 421d06551f345f0ddcf00f3bd5a7c87d9865dabd Mon Sep 17 00:00:00 2001 From: Kiran Kumar Lokere Date: Mon, 10 Aug 2020 19:56:57 -0700 Subject: [PATCH] qcacld-3.0: Add NULL check for profile in roam sync Add NULL check for roam profile in csr roam sync callback as the the session current profile can be freed in disconnect process. Change-Id: Ia127cb9fb7a6185c0a57a2c28d72fb234087c7c8 CRs-Fixed: 2739817 --- core/sme/src/csr/csr_api_roam.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 416732ec0253..6003928839ec 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -4042,6 +4042,14 @@ QDF_STATUS csr_roam_prepare_bss_config(struct mac_context *mac, QDF_ASSERT(pIes); if (!pIes) return QDF_STATUS_E_FAILURE; + if (!pProfile) { + sme_debug("Profile is NULL"); + return QDF_STATUS_E_FAILURE; + } + if (!bss_desc) { + sme_debug("bss_desc is NULL"); + return QDF_STATUS_E_FAILURE; + } qdf_mem_copy(&pBssConfig->BssCap, &bss_desc->capabilityInfo, sizeof(tSirMacCapabilityInfo)); @@ -21861,8 +21869,11 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx, } conn_profile = &session->connectedProfile; - csr_roam_stop_network(mac_ctx, session_id, session->pCurRoamProfile, - bss_desc, ies_local); + status = csr_roam_stop_network(mac_ctx, session_id, + session->pCurRoamProfile, + bss_desc, ies_local); + if (!QDF_IS_STATUS_SUCCESS(status)) + goto end; ps_global_info->remain_in_power_active_till_dhcp = false; session->connectState = eCSR_ASSOC_STATE_TYPE_INFRA_ASSOCIATED;