From f4f31df02d77857252093c7be4641d9abb27476b Mon Sep 17 00:00:00 2001 From: drh Date: Sat, 21 Dec 2019 19:37:09 +0000 Subject: [PATCH] When creating a new virtual table, ensure that the OP_ParseSchema opcode processes the correct entry in the sqlite_master table even if there is a second entry with the same name and table values due to database corruption and the use of writable_schema=ON. Dbsqlfuzz find. FossilOrigin-Name: 4dbb6e1cb094f3428c74ea8bdd86ab63341fecce978a062968ca01423f382e90 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/vtab.c | 4 ++-- test/fuzzdata8.db | Bin 1569792 -> 1570816 bytes 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 7d2ddd7bc5..748e86e511 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C When\sa\scorrupt\sschema\sis\sloaded\susing\swritable_schema=ON,\sthe\sCHECK\sconstraints\n(or\sother\sexpressions\sin\sthe\stable\sdefinition)\smight\snot\sbe\sfully\sresolved.\nEnsure\sthat\sthe\scode\sgenerator\scan\sdeal\swith\sthis\sif\sthe\stable\sis\ssubsequently\nused\sin\sa\sDML\sstatement.\s\sdbsqlfuzz\sfind. -D 2019-12-21T14:09:30.906 +C When\screating\sa\snew\svirtual\stable,\sensure\sthat\sthe\sOP_ParseSchema\sopcode\nprocesses\sthe\scorrect\sentry\sin\sthe\ssqlite_master\stable\seven\sif\sthere\sis\na\ssecond\sentry\swith\sthe\ssame\sname\sand\stable\svalues\sdue\sto\sdatabase\scorruption\nand\sthe\suse\sof\swritable_schema=ON.\s\sDbsqlfuzz\sfind. +D 2019-12-21T19:37:09.876 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -608,7 +608,7 @@ F src/vdbeblob.c 253ed82894924c362a7fa3079551d3554cd1cdace39aa833da77d3bc67e7c1b F src/vdbemem.c 2eb00a4d1a7d2c97510a4d1ccaf4e12c9143f2ced1c6b96b5eddc372183c9121 F src/vdbesort.c a3be032cc3fee0e3af31773af4a7a6f931b7230a34f53282ccf1d9a2a72343be F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143f0 -F src/vtab.c 2736f853a1bd270581f76bae8e5d2e840b6258f3d85c1fa382e9454b3c414d1d +F src/vtab.c a2fead3e97fca54fcf3f3db784e17c9ee2d39a0c5ad323e9d514855106300a86 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9 F src/wal.c 15a2845769f51ba132f9cf0b2c7a6887a91fc8437892dbcce9fcdc68b66d60a1 F src/wal.h 606292549f5a7be50b6227bd685fa76e3a4affad71bb8ac5ce4cb5c79f6a176a @@ -1017,7 +1017,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db e7a86fd83dda151d160445d542e32e5c6019c541b3a74c2a525b6ac640639711 -F test/fuzzdata8.db 34eb781c21f70c47501167b184a48a3fa8ff05ce9bc41b93dc48721e553c3c5e +F test/fuzzdata8.db 0e29cbd9b2a34aadd76fb5be963e810f61545487ccb44503e5335acb1634338e F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1852,7 +1852,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 056bb8dcbdc45989c5c6e86d2966200062e3c01c382ec52aae37c828104b4496 -R 3d66cf80146322364a240ad41d3a3004 +P ea721b34477ab8b49d182352c4bc198245933b850e9b6248b4f97600e80bb44b +R 1ee05353a832e121d716fae7817e6737 U drh -Z d7946e0fe8abc0809f4706cc432866a0 +Z c87c6f8bffb8cbc230edd05dbc19e5de diff --git a/manifest.uuid b/manifest.uuid index f33a4854bd..2c9d9909d3 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ea721b34477ab8b49d182352c4bc198245933b850e9b6248b4f97600e80bb44b \ No newline at end of file +4dbb6e1cb094f3428c74ea8bdd86ab63341fecce978a062968ca01423f382e90 \ No newline at end of file diff --git a/src/vtab.c b/src/vtab.c index 64125e769b..082b56edb0 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -484,13 +484,13 @@ void sqlite3VtabFinishParse(Parse *pParse, Token *pEnd){ zStmt, pParse->regRowid ); - sqlite3DbFree(db, zStmt); v = sqlite3GetVdbe(pParse); sqlite3ChangeCookie(pParse, iDb); sqlite3VdbeAddOp0(v, OP_Expire); - zWhere = sqlite3MPrintf(db, "name='%q' AND type='table'", pTab->zName); + zWhere = sqlite3MPrintf(db, "name=%Q AND sql=%Q", pTab->zName, zStmt); sqlite3VdbeAddParseSchemaOp(v, iDb, zWhere); + sqlite3DbFree(db, zStmt); iReg = ++pParse->nMem; sqlite3VdbeLoadString(v, iReg, pTab->zName); diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index caba53a7744bca52e6dd45a8d54eda48e5d7a61d..15eb1017a4b1005d1ea1136c7ca2000b2b5a1841 100644 GIT binary patch delta 19054 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 delta 19108 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