Bladeren bron

qcacld-3.0: Fix memory leak due to WMA_SET_LINK_STATE

Fix memory leak due to WMA_SET_LINK_STATE. There are potential memory leak
on lim_set_link_state() failure and vdev target request message cleanup.

Change-Id: I873693f9d51f3702e01aec0d9df5c218bdb70f05
CRs-Fixed: 2051977
Krishna Kumaar Natarajan 8 jaren geleden
bovenliggende
commit
fc8c36309a
2 gewijzigde bestanden met toevoegingen van 11 en 1 verwijderingen
  1. 3 1
      core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
  2. 8 0
      core/wma/src/wma_dev_if.c

+ 3 - 1
core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c

@@ -1375,8 +1375,10 @@ error:
 		if (lim_set_link_state
 			(mac_ctx, eSIR_LINK_DOWN_STATE, session_entry->bssId,
 			 session_entry->selfMacAddr, lim_join_result_callback,
-			 param) != eSIR_SUCCESS)
+			 param) != eSIR_SUCCESS) {
+			qdf_mem_free(param);
 			pe_err("Failed to set the LinkState");
+		}
 		return;
 	}
 

+ 8 - 0
core/wma/src/wma_dev_if.c

@@ -1382,6 +1382,14 @@ static void wma_cleanup_target_req_param(struct wma_target_req *tgt_req)
 		qdf_mem_free(tgt_req->user_data);
 		tgt_req->user_data = NULL;
 	}
+
+	if (tgt_req->msg_type == WMA_SET_LINK_STATE && tgt_req->user_data) {
+		tpLinkStateParams params =
+			(tpLinkStateParams) tgt_req->user_data;
+		qdf_mem_free(params->callbackArg);
+		qdf_mem_free(tgt_req->user_data);
+		tgt_req->user_data = NULL;
+	}
 }
 
 /**