]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improved detection of database corruption.
authordrh <>
Fri, 8 Oct 2021 16:15:17 +0000 (16:15 +0000)
committerdrh <>
Fri, 8 Oct 2021 16:15:17 +0000 (16:15 +0000)
FossilOrigin-Name: c7fae46c8a3bd78adc5a01340eff6c1efa75f9384dc7f42cb81717b029e7c56f

manifest
manifest.uuid
src/btree.c

index 07edb5cad08e9ae98a53e7c616662f4987f801d8..c6e13be900eb20e661db0fd6679b138f48b3c982 100644 (file)
--- 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
index c5423eade36bfacae07661ca408afc47412fce1e..73c25e713331eff7b4694fd7e85e923d22d19b57 100644 (file)
@@ -1 +1 @@
-e77ac4050cf6c24118ce2af4c075f60e3eeb2dafe6d222c848bc4e541eef7172
\ No newline at end of file
+c7fae46c8a3bd78adc5a01340eff6c1efa75f9384dc7f42cb81717b029e7c56f
\ No newline at end of file
index fc1642a66aa5834a4ab004ee5208ede72cf687e8..9c22c703538c2c37c08bcd17a8f54d0140f5c9ab 100644 (file)
@@ -8969,7 +8969,10 @@ int sqlite3BtreeInsert(
   idx = pCur->ix;
   if( loc==0 ){
     CellInfo info;
-    assert( idx<pPage->nCell );
+    assert( idx>=0 );
+    if( idx>=pPage->nCell ){
+      return SQLITE_CORRUPT_BKPT;
+    }
     rc = sqlite3PagerWrite(pPage->pDbPage);
     if( rc ){
       goto end_insert;