summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2014-02-05 10:19:20 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-02-06 15:59:41 -0800
commit224f4b6a8e0bc21854434e2d83cdcc5daf33af04 (patch)
tree564917ddf3e84faecf632d9881cbda12b380231f
parentc0b0f24d805a19fbcc3eac544cf427242061cc44 (diff)
qcacld: Fix of kernel panic in LIM MLM response handler
In limProcessSwitchChannelJoinReq() adding null pointer check for pLimJoinReq and also making sure pointer is valid before freeing it. Change-Id: I3cf3dc9299bf9a31ece9e1b126ade2994ea0faad CRs-fixed: 611685
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
index 489b96689ab1..4cff521738f2 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c
@@ -3611,7 +3611,8 @@ static void limProcessSwitchChannelJoinReq(tpAniSirGlobal pMac, tpPESession pses
goto error;
}
- if ( (NULL == psessionEntry ) || (NULL == psessionEntry->pLimMlmJoinReq) )
+ if ( (NULL == psessionEntry ) || (NULL == psessionEntry->pLimMlmJoinReq) ||
+ (NULL == psessionEntry->pLimJoinReq) )
{
PELOGE(limLog(pMac, LOGE, FL("invalid pointer!!"));)
goto error;
@@ -3674,8 +3675,16 @@ static void limProcessSwitchChannelJoinReq(tpAniSirGlobal pMac, tpPESession pses
error:
if(NULL != psessionEntry)
{
- vos_mem_free(psessionEntry->pLimMlmJoinReq);
- psessionEntry->pLimMlmJoinReq = NULL;
+ if (psessionEntry->pLimMlmJoinReq)
+ {
+ vos_mem_free(psessionEntry->pLimMlmJoinReq);
+ psessionEntry->pLimMlmJoinReq = NULL;
+ }
+ if (psessionEntry->pLimJoinReq)
+ {
+ vos_mem_free(psessionEntry->pLimJoinReq);
+ psessionEntry->pLimJoinReq = NULL;
+ }
mlmJoinCnf.sessionId = psessionEntry->peSessionId;
}
else