diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2010-03-15 14:15:32 -0700 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2010-03-15 14:15:32 -0700 |
commit | e4791cd08a244b6aac679574fc5b3a6f121767b2 (patch) | |
tree | dd7c2f0b9af52124537d3002c20620c09cfab1f1 | |
parent | 005bbf20350954d05c8a111d3f487d6fddb049bb (diff) | |
download | wlan-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.c | 12 |
1 files 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); } |