From: drh <> Date: Fri, 8 Oct 2021 16:15:17 +0000 (+0000) Subject: Improved detection of database corruption. X-Git-Tag: version-3.37.0~145 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=635480ef475da35161b334c4051deef7c37fb206;p=thirdparty%2Fsqlite.git Improved detection of database corruption. FossilOrigin-Name: c7fae46c8a3bd78adc5a01340eff6c1efa75f9384dc7f42cb81717b029e7c56f --- diff --git a/manifest b/manifest index 07edb5cad0..c6e13be900 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Minor\simprovements\sto\scomments\sin\sthe\sdata\sstructure\sdefinitions.\s\sNo\nchanges\sto\scode. -D 2021-10-08T10:25:06.619 +C Improved\sdetection\sof\sdatabase\scorruption. +D 2021-10-08T16:15:17.284 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -490,7 +490,7 @@ F src/auth.c f4fa91b6a90bbc8e0d0f738aa284551739c9543a367071f55574681e0f24f8cf F src/backup.c 3014889fa06e20e6adfa0d07b60097eec1f6e5b06671625f476a714d2356513d F src/bitvec.c 7c849aac407230278445cb069bebc5f89bf2ddd87c5ed9459b070a9175707b3d F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c 15b8bdbcf4c26ca15ec420e8da440a6d170669ac2f3735deb1668d9f3284129e +F src/btree.c 8ec2758e13d8a3884b3eb197f6aa59857ffd57943eaf18e8b961d19ad81f6266 F src/btree.h 74d64b8f28cfa4a894d14d4ed64fa432cd697b98b61708d4351482ae15913e22 F src/btreeInt.h 7bc15a24a02662409ebcd6aeaa1065522d14b7fda71573a2b0568b458f514ae0 F src/build.c 46df621d2426fe04494ad83d86d2edb5f79f6a14a4595981e4de2502f172794e @@ -1928,7 +1928,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 9b91fbcfcc14048f7d0755d47d9b7f9212fa2eaa6f3c04f417fa16c3a47943bf -R 4b303a4d6767f7ff61406cb5e533618e +P e77ac4050cf6c24118ce2af4c075f60e3eeb2dafe6d222c848bc4e541eef7172 +R 9bc76ad0c59bed7ccf95e6fe530b6c9c U drh -Z 17855c0746b72f35a62a4e373c2c0159 +Z 057f03f7f6d5e1e4d7c402b7d6417858 diff --git a/manifest.uuid b/manifest.uuid index c5423eade3..73c25e7133 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e77ac4050cf6c24118ce2af4c075f60e3eeb2dafe6d222c848bc4e541eef7172 \ No newline at end of file +c7fae46c8a3bd78adc5a01340eff6c1efa75f9384dc7f42cb81717b029e7c56f \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index fc1642a66a..9c22c70353 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8969,7 +8969,10 @@ int sqlite3BtreeInsert( idx = pCur->ix; if( loc==0 ){ CellInfo info; - assert( idxnCell ); + assert( idx>=0 ); + if( idx>=pPage->nCell ){ + return SQLITE_CORRUPT_BKPT; + } rc = sqlite3PagerWrite(pPage->pDbPage); if( rc ){ goto end_insert;