]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improved detection of corrupt databases in balance_nonroot().
authordrh <>
Thu, 5 Oct 2023 11:09:07 +0000 (11:09 +0000)
committerdrh <>
Thu, 5 Oct 2023 11:09:07 +0000 (11:09 +0000)
dbsqlfuzz d1cf013c50a620b68c2a5bd240d29afd65e5f58e.

FossilOrigin-Name: f4aa1bfc97e7c5e04462dfa0152c0ced37a5b342782c0efe4966ebda977c5ea5

manifest
manifest.uuid
src/btree.c

index 7d9f41d91de41669f4bff29ddc94ba97a830f276..b6146207123d5932ae1edab8f04be8c3d996e4a0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Correct\san\sundefined-value\sderef\sin\sthe\sJS\sbindings,\striggered\sby\spassing\sinvalid\sargs\sand\sthen\stripping\sover\san\sundefined\svalue\swhile\strying\sto\sreport\sthat.\sReported\sin\s[forum:dd42df144651d779|forum\spost\sdd42df144651d779].
-D 2023-09-30T13:16:15.480
+C Improved\sdetection\sof\scorrupt\sdatabases\sin\sbalance_nonroot().\ndbsqlfuzz\sd1cf013c50a620b68c2a5bd240d29afd65e5f58e.
+D 2023-10-05T11:09:07.046
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -623,7 +623,7 @@ F src/auth.c 19b7ccacae3dfba23fc6f1d0af68134fa216e9040e53b0681b4715445ea030b4
 F src/backup.c 5c97e8023aab1ce14a42387eb3ae00ba5a0644569e3476f38661fa6f824c3523
 F src/bitvec.c 9eac5f42c11914d5ef00a75605bb205e934f435c579687f985f1f8b0995c8645
 F src/btmutex.c 79a43670447eacc651519a429f6ece9fd638563cf95b469d6891185ddae2b522
-F src/btree.c 7a37bdf09f338561880860681cb03499a60c3bb0869e539c58bc1d2cdd705ff2
+F src/btree.c 15611f72bd65aef23b3ae4026164f86e2466791be5b9745f8421d0eed3c5238a
 F src/btree.h 03e3356f5208bcab8eed4e094240fdac4a7f9f5ddf5e91045ce589f67d47c240
 F src/btreeInt.h 91a9e0c41a0e71fa91a742ec285c63dd8dcb38b73d14fae0ed7209174ff0fdc1
 F src/build.c a8ae3b32d9aa9bbd2c0e97d7c0dd80def9fbca408425de1608f57ee6f47f45f4
@@ -2092,9 +2092,9 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 4ce5a03e7436fbe93baa746312014d8b04cde0787066989f60c2454a42e817d6
-Q +fd4632540717c4771ac9ae1fe4400091a2cd0553639bf809abaf4ecbc54de4f0
-R 5ba85960404f371baa4c698789aca4b1
-U stephan
-Z 025125e09c330de5267e596b74e21e7f
+P 1545f0f7359d00ed47fce6be029e0c4d87ec092cdf9e609f86e0e5b93412c8a4
+Q +a2464bbb825b5976ef974a2e6c17ea150f5e6fcd0dd0f144b9f9c1c22a9c9c82
+R 2c105c64fb0a1035f1f3473dfcef0cb5
+U drh
+Z 004a007ad3556462ea9f9b05a87a43ca
 # Remove this line to create a well-formed Fossil manifest.
index a6e397a0ed1304ddb394f19d9fbaefde2cb423bb..338ddbf401f16a3b39373c060015aca8d7599909 100644 (file)
@@ -1 +1 @@
-1545f0f7359d00ed47fce6be029e0c4d87ec092cdf9e609f86e0e5b93412c8a4
\ No newline at end of file
+f4aa1bfc97e7c5e04462dfa0152c0ced37a5b342782c0efe4966ebda977c5ea5
\ No newline at end of file
index c23f86e1d284ce08f0977a8eadbfc90b9cb2b3f1..9b59f3ff8ec34968129e43b45e1f6c2a100ce4bd 100644 (file)
@@ -7493,6 +7493,7 @@ static int rebuildPage(
   int k;                          /* Current slot in pCArray->apEnd[] */
   u8 *pSrcEnd;                    /* Current pCArray->apEnd[k] value */
 
+  assert( nCell>0 );
   assert( i<iEnd );
   j = get2byte(&aData[hdr+5]);
   if( NEVER(j>(u32)usableSize) ){ j = 0; }
@@ -7799,6 +7800,7 @@ static int editPage(
   return SQLITE_OK;
  editpage_fail:
   /* Unable to edit this page. Rebuild it from scratch instead. */
+  if( nNew<1 ) return SQLITE_CORRUPT_BKPT;
   populateCellCache(pCArray, iNew, nNew);
   return rebuildPage(pCArray, iNew, nNew, pPg);
 }