From 113a33c5398e2e673853e01d48703e00c17f6bc5 Mon Sep 17 00:00:00 2001 From: drh <> Date: Sat, 24 Apr 2021 23:40:05 +0000 Subject: [PATCH] Make window range queries more robust against corrupt database files. dbsqlfuzz f22df3a7b2aab0937a415484514fc2f68a293c99. FossilOrigin-Name: 506333742103c1f440db5da819a36f3b518f7b49e94a7b74419b02bbcadc5a78 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/window.c | 31 ++++++++++++++++++++----------- test/fuzzdata8.db | Bin 2101248 -> 2104320 bytes 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/manifest b/manifest index dda2d26af2..9c94a08655 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Treat\sbyte-order\smarks\s(BOMs)\sat\sthe\sstart\sof\sa\stoken\sas\swhitespace.\nThis\senhancement\sis\sinspired\sby\n[forum:/forumpost/ed8f696a20|forum\spost\sed8f696a20]. -D 2021-04-24T12:24:08.900 +C Make\swindow\srange\squeries\smore\srobust\sagainst\scorrupt\sdatabase\sfiles.\ndbsqlfuzz\sf22df3a7b2aab0937a415484514fc2f68a293c99. +D 2021-04-24T23:40:05.083 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -634,7 +634,7 @@ F src/where.c cb76c17d0bded653040cb16e2f4532fa7b20f5f8c205f4078d346562821107a2 F src/whereInt.h 446e5e8018f83358ef917cf32d8e6a86dc8430113d0b17e720f1839d3faa44c4 F src/wherecode.c 992bf0d7520bffd345472fb9bc83a1ca0134e46d9e904879bb21e1e77957fcc3 F src/whereexpr.c d8cafcf6781cf871082f04d7540862cf0fe30cb381dd1b2145a380376364fe8e -F src/window.c ae9fbd0cbaa39e1b384c13289ed769f9981383bde7b2f262c70ad6c42e5ab226 +F src/window.c 35b14e7a53fe0472b42679919c474de3a5b5c1615fe90a2c41431f37e4ede1be F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2 F test/affinity2.test ce1aafc86e110685b324e9a763eab4f2a73f737842ec3b687bd965867de90627 F test/affinity3.test eecb0dabee4b7765a8465439d5e99429279ffba23ca74a7eae270a452799f9e7 @@ -1057,7 +1057,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db 0166b56fd7a6b9636a1d60ef0a060f86ddaecf99400a666bb6e5bbd7199ad1f2 -F test/fuzzdata8.db eb5547e7aa31b689ede8d23c038e5150d319ae80deb2bdf596afe1cc1be5fb3d +F test/fuzzdata8.db cb843f55a3ab450c0ae82cb86731019f8180a0bd59de9f3656cfff5d6ba7a0a7 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test f64c4aef4c9e9edf1d6dc0d3f1e65dcc81e67c996403c88d14f09b74807a42bc @@ -1914,7 +1914,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 32255e39cbde65492d88177464cee9e10cb20cf3105208416be131e2c89b63e1 -R 1d0e571ef291122bdf317bcd3d07015b +P 3d55c21c167631f42d155aadec544e629bd078de9992aa5a74694d08bc52052b +R 046b16c6ecc6c0794b90790e7eea9c3c U drh -Z 9d760c4ee05493d61d6146a0ceb36fa0 +Z e9d04fc2504496c7597cf6435acf852a diff --git a/manifest.uuid b/manifest.uuid index 5733a0c591..320919c064 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3d55c21c167631f42d155aadec544e629bd078de9992aa5a74694d08bc52052b \ No newline at end of file +506333742103c1f440db5da819a36f3b518f7b49e94a7b74419b02bbcadc5a78 \ No newline at end of file diff --git a/src/window.c b/src/window.c index ad3b47dad4..61e57cf374 100644 --- a/src/window.c +++ b/src/window.c @@ -1570,6 +1570,7 @@ struct WindowCodeArg { int regGosub; /* Register used with OP_Gosub(addrGosub) */ int regArg; /* First in array of accumulator registers */ int eDelete; /* See above */ + int regRowid; WindowCsrAndReg start; WindowCsrAndReg current; @@ -2246,16 +2247,24 @@ static int windowCodeOp( /* If this is a (RANGE BETWEEN a FOLLOWING AND b FOLLOWING) or ** (RANGE BETWEEN b PRECEDING AND a PRECEDING) frame, ensure the ** start cursor does not advance past the end cursor within the - ** temporary table. It otherwise might, if (a>b). */ + ** temporary table. It otherwise might, if (a>b). Also ensure that, + ** if the input cursor is still finding new rows, that the end + ** cursor does not go past it to EOF. */ if( pMWin->eStart==pMWin->eEnd && regCountdown - && pMWin->eFrmType==TK_RANGE && op==WINDOW_AGGINVERSE + && pMWin->eFrmType==TK_RANGE ){ int regRowid1 = sqlite3GetTempReg(pParse); int regRowid2 = sqlite3GetTempReg(pParse); - sqlite3VdbeAddOp2(v, OP_Rowid, p->start.csr, regRowid1); - sqlite3VdbeAddOp2(v, OP_Rowid, p->end.csr, regRowid2); - sqlite3VdbeAddOp3(v, OP_Ge, regRowid2, lblDone, regRowid1); - VdbeCoverage(v); + if( op==WINDOW_AGGINVERSE ){ + sqlite3VdbeAddOp2(v, OP_Rowid, p->start.csr, regRowid1); + sqlite3VdbeAddOp2(v, OP_Rowid, p->end.csr, regRowid2); + sqlite3VdbeAddOp3(v, OP_Ge, regRowid2, lblDone, regRowid1); + VdbeCoverage(v); + }else if( p->regRowid ){ + sqlite3VdbeAddOp2(v, OP_Rowid, p->end.csr, regRowid1); + sqlite3VdbeAddOp3(v, OP_Ge, p->regRowid, lblDone, regRowid1); + VdbeCoverage(v); + } sqlite3ReleaseTempReg(pParse, regRowid1); sqlite3ReleaseTempReg(pParse, regRowid2); assert( pMWin->eStart==TK_PRECEDING || pMWin->eStart==TK_FOLLOWING ); @@ -2752,7 +2761,6 @@ void sqlite3WindowCodeStep( int addrEmpty; /* Address of OP_Rewind in flush: */ int regNew; /* Array of registers holding new input row */ int regRecord; /* regNew array in record form */ - int regRowid; /* Rowid for regRecord in eph table */ int regNewPeer = 0; /* Peer values for new row (part of regNew) */ int regPeer = 0; /* Peer values for current row */ int regFlushPart = 0; /* Register for "Gosub flush_partition" */ @@ -2824,7 +2832,7 @@ void sqlite3WindowCodeStep( regNew = pParse->nMem+1; pParse->nMem += nInput; regRecord = ++pParse->nMem; - regRowid = ++pParse->nMem; + s.regRowid = ++pParse->nMem; /* If the window frame contains an " PRECEDING" or " FOLLOWING" ** clause, allocate registers to store the results of evaluating each @@ -2880,9 +2888,9 @@ void sqlite3WindowCodeStep( } /* Insert the new row into the ephemeral table */ - sqlite3VdbeAddOp2(v, OP_NewRowid, csrWrite, regRowid); - sqlite3VdbeAddOp3(v, OP_Insert, csrWrite, regRecord, regRowid); - addrNe = sqlite3VdbeAddOp3(v, OP_Ne, pMWin->regOne, 0, regRowid); + sqlite3VdbeAddOp2(v, OP_NewRowid, csrWrite, s.regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, csrWrite, regRecord, s.regRowid); + addrNe = sqlite3VdbeAddOp3(v, OP_Ne, pMWin->regOne, 0, s.regRowid); VdbeCoverageNeverNull(v); /* This block is run for the first row of each partition */ @@ -3000,6 +3008,7 @@ void sqlite3WindowCodeStep( sqlite3VdbeJumpHere(v, addrGosubFlush); } + s.regRowid = 0; addrEmpty = sqlite3VdbeAddOp1(v, OP_Rewind, csrWrite); VdbeCoverage(v); if( pMWin->eEnd==TK_PRECEDING ){ diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 92bd92d253e90652ee64b48380eda5111135a3e1..6f9754a2ec655467e30ee2b6b0bdf700cda2a3ad 100644 GIT binary patch delta 29741 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 XglK{L!+bBOYHKRi@0Mbh3HW~jE+H*x delta 29024 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 ^k}F6ys$`Sa0i#1AAI`^W-ab*s?2x{z0Qf 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 -- 2.47.2