diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 2b06947321f7..6f08e8e11938 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -229,9 +229,12 @@ static QDF_STATUS sme_process_set_hw_mode_resp(tpAniSirGlobal mac, uint8_t *msg) if (saved_cmd->u.scanCmd.u.scanRequest.SSIDs.SSIDList) qdf_mem_free(saved_cmd->u.scanCmd.u. scanRequest.SSIDs.SSIDList); - if (saved_cmd->u.scanCmd.pToRoamProfile) - qdf_mem_free(saved_cmd->u.scanCmd. - pToRoamProfile); + if (saved_cmd->u.scanCmd.pToRoamProfile) { + csr_release_profile(mac, saved_cmd-> + u.scanCmd.pToRoamProfile); + qdf_mem_free(saved_cmd->u.scanCmd.pToRoamProfile); + saved_cmd->u.scanCmd.pToRoamProfile = NULL; + } if (saved_cmd) { qdf_mem_free(saved_cmd); saved_cmd = NULL; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 70e9dc09d88d..f5d45fad214d 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -288,7 +288,17 @@ static void csr_roam_init_globals(tpAniSirGlobal pMac) static void csr_roam_de_init_globals(tpAniSirGlobal pMac) { + uint8_t i; if (pMac) { + for (i = 0; i < CSR_ROAM_SESSION_MAX; i++) { + if (pMac->roam.roamSession[i].pCurRoamProfile) + csr_release_profile(pMac, + pMac->roam.roamSession[i]. + pCurRoamProfile); + csr_release_profile(pMac, + &pMac->roam.roamSession[i]. + stored_roam_profile.profile); + } pMac->roam.roamSession = NULL; } return; diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index b3e7a119372c..b76dd82f269c 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -4036,8 +4036,11 @@ error: qdf_mem_free(save_cmd->u.roamCmd.pRoamBssEntry); if (save_cmd->u.scanCmd.u.scanRequest.SSIDs.SSIDList) qdf_mem_free(save_cmd->u.scanCmd.u.scanRequest.SSIDs.SSIDList); - if (save_cmd->u.scanCmd.pToRoamProfile) + if (save_cmd->u.scanCmd.pToRoamProfile) { + csr_release_profile(mac_ctx, + save_cmd->u.scanCmd.pToRoamProfile); qdf_mem_free(save_cmd->u.scanCmd.pToRoamProfile); + } return QDF_STATUS_E_FAILURE; }