From 03f5f0eb561bf20f68338633370974f07c72771f Mon Sep 17 00:00:00 2001 From: Vignesh Viswanathan Date: Fri, 11 May 2018 17:44:28 +0530 Subject: [PATCH] qcacld-3.0: Free body if session is NULL in lim_process_switch_channel_rsp In lim_process_switch_channel_rsp, if pe_find_session_by_session_id returns NULL, memory of body pointer is not freed leading to memory leak. Free memory allocated for body pointer if session entry is NULL in lim_process_switch_channel_rsp. Change-Id: I939aceb3ed993fd1488b72db9df526c1724f0ac5 CRs-Fixed: 2236980 --- core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c index 41eb13487362..6390c7b8ceea 100644 --- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c +++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c @@ -3140,7 +3140,7 @@ void lim_process_switch_channel_rsp(tpAniSirGlobal pMac, void *body) psessionEntry = pe_find_session_by_session_id(pMac, peSessionId); if (psessionEntry == NULL) { pe_err("session does not exist for given sessionId"); - return; + goto free; } psessionEntry->ch_switch_in_progress = false; /* HAL fills in the tx power used for mgmt frames in this field. */ @@ -3207,6 +3207,7 @@ void lim_process_switch_channel_rsp(tpAniSirGlobal pMac, void *body) default: break; } +free: qdf_mem_free(body); }