From: drh <> Date: Sun, 19 Jun 2022 16:55:07 +0000 (+0000) Subject: Follow-up to check-in [0057bbb508e7662b] - ensure that the database page X-Git-Tag: version-3.39.0~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1d49768151a2cdbbfebe78cc2da11b717b164be8;p=thirdparty%2Fsqlite.git Follow-up to check-in [0057bbb508e7662b] - ensure that the database page has been initialized prior to continuing with the optimization. If the page is not initialized, that indicates that the database is corrupt. dbsqlfuzz 09ee46becd5e6d1b2a55c9f8ad767335a90aadb0. FossilOrigin-Name: 11162446f12ae3af6e4a63bb5c374129b2505f6006f91d4028c7165f05fe9651 --- diff --git a/manifest b/manifest index b16e4845e1..8a7ccec81d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Enable\squery\sinvariant\schecking\sin\sfuzzcheck\sby\sdefault.\s\sThere\sis\sno\sway\nto\sturn\sit\soff.\s\sUpdate\sthe\sinvariant\schecking\slogic\sto\sbe\sconsistant\swith\ndbsqlfuzz. -D 2022-06-18T20:20:30.693 +C Follow-up\sto\scheck-in\s[0057bbb508e7662b]\s-\sensure\sthat\sthe\sdatabase\spage\nhas\sbeen\sinitialized\sprior\sto\scontinuing\swith\sthe\soptimization.\s\sIf\sthe\spage\nis\snot\sinitialized,\sthat\sindicates\sthat\sthe\sdatabase\sis\scorrupt.\ndbsqlfuzz\s09ee46becd5e6d1b2a55c9f8ad767335a90aadb0. +D 2022-06-19T16:55:07.534 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -510,7 +510,7 @@ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf F src/backup.c a2891172438e385fdbe97c11c9745676bec54f518d4447090af97189fd8e52d7 F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c cc49f394c156f101ff12449a21ec1478f60e1bbd287fbf5fec8c2322dc55cccd +F src/btree.c b5a74c39d3123dadd190019c0afadd7f62b43dfe0712a39e9d0ff2fe26be5d93 F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22 F src/btreeInt.h 8ce1332edd89dfd2461d561ac10a0ab5601c8e06200cb5230596c3caaf54482e F src/build.c 23f874642825d7eaaeeb7a3281b2b1a75e1d4c4dd9ae4dceddcd908266634214 @@ -1978,8 +1978,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P d31e1cd2ab44c7cce20b8990dff17719c286dd2fb46ba6d4f581a9553cf31891 -R 5b4a10214807c18490f78f54aeff8595 +P 66ca729bbbf37cb7ff8eb12f51429e0c0833bd5d3f0ef20a1eaeeb10820713c2 +R fa8846316014c6162dbcbfd1faaeecc9 U drh -Z d6244a9a07066e08a48f8f82e9118858 +Z fcfd6ea1142ee132e30beeda028c95e6 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 1f4f0cd9e5..e56b982368 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -66ca729bbbf37cb7ff8eb12f51429e0c0833bd5d3f0ef20a1eaeeb10820713c2 \ No newline at end of file +11162446f12ae3af6e4a63bb5c374129b2505f6006f91d4028c7165f05fe9651 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 8ed4d6cef4..facb951d3c 100644 --- a/src/btree.c +++ b/src/btree.c @@ -5847,6 +5847,9 @@ int sqlite3BtreeIndexMoveto( && pIdxKey->errCode==SQLITE_OK ){ pCur->curFlags &= ~BTCF_ValidOvfl; + if( !pCur->pPage->isInit ){ + return SQLITE_CORRUPT_BKPT; + } goto bypass_moveto_root; /* Start search on the current page */ } pIdxKey->errCode = SQLITE_OK;