summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2010-03-15 14:15:32 -0700
committerDmitry Shmidt <dimitrysh@google.com>2010-03-15 14:15:32 -0700
commite4791cd08a244b6aac679574fc5b3a6f121767b2 (patch)
treedd7c2f0b9af52124537d3002c20620c09cfab1f1
parent005bbf20350954d05c8a111d3f487d6fddb049bb (diff)
downloadwlan-e4791cd08a244b6aac679574fc5b3a6f121767b2.tar.gz
wl1271: Check for NULL pointer in txCtrlBlk_Free()
Change-Id: If2558969a8b2584d3bdd9ea05d631339abc188a8 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r--wl1271/TWD/Data_Service/txCtrlBlk.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/wl1271/TWD/Data_Service/txCtrlBlk.c b/wl1271/TWD/Data_Service/txCtrlBlk.c
index 24feef6..a3029da 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);
}