From e4791cd08a244b6aac679574fc5b3a6f121767b2 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Mon, 15 Mar 2010 14:15:32 -0700 Subject: wl1271: Check for NULL pointer in txCtrlBlk_Free() Change-Id: If2558969a8b2584d3bdd9ea05d631339abc188a8 Signed-off-by: Dmitry Shmidt --- wl1271/TWD/Data_Service/txCtrlBlk.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/wl1271/TWD/Data_Service/txCtrlBlk.c b/wl1271/TWD/Data_Service/txCtrlBlk.c index 24feef64..a3029da7 100644 --- a/wl1271/TWD/Data_Service/txCtrlBlk.c +++ b/wl1271/TWD/Data_Service/txCtrlBlk.c @@ -217,24 +217,28 @@ void txCtrlBlk_Free (TI_HANDLE hTxCtrlBlk, TTxCtrlBlk *pCurrentEntry) TTxCtrlBlkObj *pTxCtrlBlk = (TTxCtrlBlkObj *)hTxCtrlBlk; TTxCtrlBlk *pFirstFreeEntry = &(pTxCtrlBlk->aTxCtrlBlkTbl[0]); + if (!pTxCtrlBlk) { + return; + } + #ifdef TI_DBG /* If the pointed entry is already free, print error and exit (not expected to happen). */ if (pCurrentEntry->pNextFreeEntry != 0) { -TRACE2(pTxCtrlBlk->hReport, REPORT_SEVERITY_ERROR, "txCtrlBlk_free(): Entry %d alredy free, UsedEntries=%d\n", pCurrentEntry->tTxDescriptor.descID, pTxCtrlBlk->uNumUsedEntries); + TRACE2(pTxCtrlBlk->hReport, REPORT_SEVERITY_ERROR, "txCtrlBlk_free(): Entry %d alredy free, UsedEntries=%d\n", pCurrentEntry->tTxDescriptor.descID, pTxCtrlBlk->uNumUsedEntries); return; } pTxCtrlBlk->uNumUsedEntries--; #endif - /* Protect block freeing from preemption (may be called from external context) */ - context_EnterCriticalSection (pTxCtrlBlk->hContext); + /* Protect block freeing from preemption (may be called from external context) */ + context_EnterCriticalSection (pTxCtrlBlk->hContext); /* Link the freed entry between entry 0 and the next free entry. */ pCurrentEntry->pNextFreeEntry = pFirstFreeEntry->pNextFreeEntry; pFirstFreeEntry->pNextFreeEntry = pCurrentEntry; - context_LeaveCriticalSection (pTxCtrlBlk->hContext); + context_LeaveCriticalSection (pTxCtrlBlk->hContext); } -- cgit v1.2.3