From: drh Date: Thu, 16 Jul 2020 02:36:24 +0000 (+0000) Subject: Fix a double-free of the FROM clause of an UPDATE inside of triggers. X-Git-Tag: version-3.33.0~53^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b866a65d4d52ce6db17cafa9097f0c4051e2dad5;p=thirdparty%2Fsqlite.git Fix a double-free of the FROM clause of an UPDATE inside of triggers. FossilOrigin-Name: 706c8da2f6d9299f0ad3b3c93332b38071e8e88b4d1660c1841309919b64fd18 --- diff --git a/manifest b/manifest index 1b34e3dc94..9ad0351559 100644 --- a/manifest +++ b/manifest @@ -1,6 +1,6 @@ B 7a876209a678a34c198b54ceef9e3c041f128a14dc73357f6a57cadadaa6cf7b -C Separate\sVdbeCoverage()\smacro\sfor\sdifferent\sjumps. -D 2020-07-16T00:45:25.487 +C Fix\sa\sdouble-free\sof\sthe\sFROM\sclause\sof\san\sUPDATE\sinside\sof\striggers. +D 2020-07-16T02:36:24.506 F Makefile.in 19374a5db06c3199ec1bab71ab74a103d8abf21053c05e9389255dc58083f806 F Makefile.msc 48f5a3fc32672c09ad73795749f6253e406a31526935fbbffd8f021108d54574 F autoconf/Makefile.am a8d1d24affe52ebf8d7ddcf91aa973fa0316618ab95bb68c87cabf8faf527dc8 @@ -30,7 +30,7 @@ F src/select.c a48570f614f777d02dd7f419789944225432a9231b2dbca863411ac19e5fb683 F src/shell.c.in 81fa23ac1a3d6ac9ed13e9ae711a3d8806396ca7cc12c5d6a2e2536f70b0c7ad F src/sqliteInt.h e2684c4ba7ee9c0a0529ae2eb847cc5bf923e4104a9d0944bf3d9d151856b6ab F src/test1.c fe56c4bcaa2685ca9aa25d817a0ee9345e189aff4a5a71a3d8ba946c7776feb8 -F src/trigger.c 6ff9c64a06e6354df8eba08ae18bc809e79931175d39dda32bf1101adee238e5 +F src/trigger.c ef67bde309a831515dc3c2173d792574309f2f42d45f8c078743fae9f7f98c75 F src/update.c 9cfa2f840c69c28c5767b68cf38b4e7847e06ac0610978814f913d469d863900 F src/util.c c0bacc165f46169d2b720c37c8719165e383211698fad1de39dd16a8c161815a F src/vdbe.c 981666c49d33039df6dc9fccd40191575586ac4866255b2f57819cc5eb99f572 @@ -65,7 +65,7 @@ F tool/mksqlite3c.tcl f4ef476510eca4124c874a72029f1e01bc54a896b1724e8f9eef0d8bfa F tool/mksqlite3h.tcl 1f5e4a1dbbbc43c83cc6e74fe32c6c620502240b66c7c0f33a51378e78fc4edf F tool/showlocks.c 9cc5e66d4ebbf2d194f39db2527ece92077e86ae627ddd233ee48e16e8142564 F tool/speed-check.sh 615cbdf50f1409ef3bbf9f682e396df80f49d97ed93ed3e61c8e91fae6afde58 -P 8ca87526523a985674fed5a8770726587b3a2e48d65721916902063ab5dba49c -R 9c7b449e6c53be5488a226bb21219882 +P da593e57df042527decfea68baacc72d463728544cab81c70fbb25839791f706 +R 3c1be9d78ac76070b4e1e9b0ee27588a U drh -Z 8582c27790c994357e14d43636223ab3 +Z ff8d21dd1304c045d5436546299b72d7 diff --git a/manifest.uuid b/manifest.uuid index f68ef7db53..e0583b8049 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -da593e57df042527decfea68baacc72d463728544cab81c70fbb25839791f706 \ No newline at end of file +706c8da2f6d9299f0ad3b3c93332b38071e8e88b4d1660c1841309919b64fd18 \ No newline at end of file diff --git a/src/trigger.c b/src/trigger.c index 883eddc2d1..7ab5d95be3 100644 --- a/src/trigger.c +++ b/src/trigger.c @@ -512,8 +512,6 @@ TriggerStep *sqlite3TriggerUpdateStep( pTriggerStep->pFrom = sqlite3SrcListDup(db, pFrom, EXPRDUP_REDUCE); } pTriggerStep->orconf = orconf; - }else{ - sqlite3SrcListDelete(db, pFrom); } sqlite3ExprListDelete(db, pEList); sqlite3ExprDelete(db, pWhere);