Browse Source

qcacld-3.0: Fix memory leak for lim preauth timers at driver unload

This is qcacld-2.0 to qcacld-3.0 propagation

Fix memory leak at driver unload by freeing memory for lim preauth
timers.

Change-Id: I7be177e6c475a8f8fdc4cc7d2744e34a4bf5dbf5
CRs-Fixed: 960617
Naveen Rawat 9 years ago
parent
commit
2546093dca
2 changed files with 4 additions and 1 deletions
  1. 3 0
      core/mac/src/pe/lim/lim_api.c
  2. 1 1
      core/mac/src/pe/lim/lim_timer_utils.c

+ 3 - 0
core/mac/src/pe/lim/lim_api.c

@@ -644,6 +644,7 @@ tSirRetStatus lim_initialize(tpAniSirGlobal pMac)
 
 void lim_cleanup(tpAniSirGlobal pMac)
 {
+	uint8_t i;
 	/*
 	 * Before destroying the list making sure all the nodes have been
 	 * deleted Which should be the normal case, but a memory leak has been
@@ -670,6 +671,8 @@ void lim_cleanup(tpAniSirGlobal pMac)
 
 	/* free up preAuth table */
 	if (pMac->lim.gLimPreAuthTimerTable.pTable != NULL) {
+		for (i = 0; i < pMac->lim.gLimPreAuthTimerTable.numEntry; i++)
+			qdf_mem_free(pMac->lim.gLimPreAuthTimerTable.pTable[i]);
 		qdf_mem_free(pMac->lim.gLimPreAuthTimerTable.pTable);
 		pMac->lim.gLimPreAuthTimerTable.pTable = NULL;
 		pMac->lim.gLimPreAuthTimerTable.numEntry = 0;

+ 1 - 1
core/mac/src/pe/lim/lim_timer_utils.c

@@ -437,7 +437,7 @@ err_timer:
 	tx_timer_delete(&pMac->lim.limTimers.gLimActiveToPassiveChannelTimer);
 
 	if (NULL != pMac->lim.gLimPreAuthTimerTable.pTable) {
-		for (i = 0; i < cfgValue; i++)
+		for (i = 0; i < pMac->lim.gLimPreAuthTimerTable.numEntry; i++)
 			qdf_mem_free(pMac->lim.gLimPreAuthTimerTable.pTable[i]);
 		qdf_mem_free(pMac->lim.gLimPreAuthTimerTable.pTable);
 		pMac->lim.gLimPreAuthTimerTable.pTable = NULL;