diff options
author | danielk1977 <danielk1977@noemail.net> | 2005-12-09 14:25:08 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2005-12-09 14:25:08 +0000 |
commit | 2e588c7525a77b3a6cc53c67ea833f75f7e4052b (patch) | |
tree | ddcc123e58fd8bd9667533bdfe9b3926bd132cce /src/trigger.c | |
parent | fde4a6f8a4e8f6edcc3ab6d3c658d42d704060c9 (diff) | |
download | sqlite-2e588c7525a77b3a6cc53c67ea833f75f7e4052b.tar.gz sqlite-2e588c7525a77b3a6cc53c67ea833f75f7e4052b.zip |
Many small changes to ensure memory is not leaked after malloc() fails. (CVS 2808)
FossilOrigin-Name: 601c335463aaabc2e9918e4b9298cff6161be5c4
Diffstat (limited to 'src/trigger.c')
-rw-r--r-- | src/trigger.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/trigger.c b/src/trigger.c index cc5fc080e..fc4f172ba 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -199,7 +199,7 @@ void sqlite3FinishTrigger( pTrig = pParse->pNewTrigger; pParse->pNewTrigger = 0; - if( pParse->nErr || pTrig==0 ) goto triggerfinish_cleanup; + if( pParse->nErr || !pTrig ) goto triggerfinish_cleanup; pTrig->step_list = pStepList; while( pStepList ){ pStepList->pTrig = pTrig; @@ -312,7 +312,10 @@ static void sqlitePersistTriggerStep(TriggerStep *p){ */ TriggerStep *sqlite3TriggerSelectStep(Select *pSelect){ TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep)); - if( pTriggerStep==0 ) return 0; + if( pTriggerStep==0 ) { + sqlite3SelectDelete(pSelect); + return 0; + } pTriggerStep->op = TK_SELECT; pTriggerStep->pSelect = pSelect; |