]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a memory leak that occurs after a malloc failure in trigger parsing. (CVS 3772)
authordrh <drh@noemail.net>
Fri, 30 Mar 2007 20:40:34 +0000 (20:40 +0000)
committerdrh <drh@noemail.net>
Fri, 30 Mar 2007 20:40:34 +0000 (20:40 +0000)
FossilOrigin-Name: 407a85e69b7a1229218a5ce9a9e31255c7070294

manifest
manifest.uuid
src/trigger.c

index 923f2a9f226bccd881bcbaaf1dd3a81ec1daba7e..95c844f36c5f357aa569ee40ca28ad1c80a2604f 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\smemory\sleak\sin\smulti-database\scommit.\s\sAlso\senhance\sa\scomment\sthat\nexplains\swhy\sa\sparticular\svalgrind\serror\sis\sharmless.\s(CVS\s3771)
-D 2007-03-30T18:42:56
+C Fix\sa\smemory\sleak\sthat\soccurs\safter\sa\smalloc\sfailure\sin\strigger\sparsing.\s(CVS\s3772)
+D 2007-03-30T20:40:34
 F Makefile.in 2f2c3bf69faf0ae7b8e8af4f94f1986849034530
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -118,7 +118,7 @@ F src/test_schema.c ced72140a3a25c148975428e170ec1850d3c3a7d
 F src/test_server.c a6460daed0b92ecbc2531b6dc73717470e7a648c
 F src/test_tclvar.c 315e77c17f128ff8c06b38c08617fd07c825a95b
 F src/tokenize.c bb1732ef2b6fc2143f93ff28a45d3dcb04c1d396
-F src/trigger.c 8c55d31876013ed4e97ee7ce24478fbe00db49bb
+F src/trigger.c 7f65762a7400031937774067a07cddc3f3c03e29
 F src/update.c 3359041db390a8f856d67272f299600e2104f350
 F src/utf.c 67ecb1032bc0b42c105e88d65ef9d9f626eb0e1f
 F src/util.c 8e8180ee5597f2474c1da311ff3c464b6966c0f1
@@ -447,7 +447,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P c1aca18fad35be60066a08f5bd09772d24375af6
-R d3989353f3b76217fb1661204ddd5484
+P 28c7ed1eb799203a569cdae97da974b347f39579
+R a0905c32cd90b0b80a1bc1360611ccd5
 U drh
-Z d9338063531486f14e383e7f3e14d3e3
+Z bf54325597d09c764d008fa62cbdee79
index 9174d8578bfdf0a04e4e7205d0d93f4245c5029f..5023c8f618344d326ee673007bf24f1979690e2d 100644 (file)
@@ -1 +1 @@
-28c7ed1eb799203a569cdae97da974b347f39579
\ No newline at end of file
+407a85e69b7a1229218a5ce9a9e31255c7070294
\ No newline at end of file
index a6eabbf62a096357564be2298fa2ed996f602a06..f410d9364dd280c431d1d8d4ccdb927fa1792822 100644 (file)
@@ -390,7 +390,11 @@ TriggerStep *sqlite3TriggerUpdateStep(
   int orconf           /* The conflict algorithm. (OE_Abort, OE_Ignore, etc) */
 ){
   TriggerStep *pTriggerStep = sqliteMalloc(sizeof(TriggerStep));
-  if( pTriggerStep==0 ) return 0;
+  if( pTriggerStep==0 ){
+     sqlite3ExprListDelete(pEList);
+     sqlite3ExprDelete(pWhere);
+     return 0;
+  }
 
   pTriggerStep->op = TK_UPDATE;
   pTriggerStep->target  = *pTableName;