]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not attempt to truncate a database in sqlite_dbpage if the database is
authordrh <>
Tue, 17 Dec 2024 14:32:37 +0000 (14:32 +0000)
committerdrh <>
Tue, 17 Dec 2024 14:32:37 +0000 (14:32 +0000)
not larger than the requested truncation size.

FossilOrigin-Name: cf8b99e17872c054e7ac0832d12633ce497c843dfc67148daf3b17762fd2b424

manifest
manifest.uuid
src/dbpage.c

index 09541b416a8ead1462efe9a8ebe2ab6cd9248047..bdec535f487fe43f31d152f50cc36285ecf7d802 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Code\sformatting\schanges\sto\smake\strunk\smore\slike\swal2.
-D 2024-12-16T18:04:39.151
+C Do\snot\sattempt\sto\struncate\sa\sdatabase\sin\ssqlite_dbpage\sif\sthe\sdatabase\sis\nnot\slarger\sthan\sthe\srequested\struncation\ssize.
+D 2024-12-17T14:32:37.037
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -724,7 +724,7 @@ F src/callback.c db3a45e376deff6a16c0058163fe0ae2b73a2945f3f408ca32cf74960b28d49
 F src/complete.c a3634ab1e687055cd002e11b8f43eb75c17da23e
 F src/ctime.c d35723024b963edce9c0fad5b3303e8bb9266083784844baed10a6dedfe26f3b
 F src/date.c 89ce1ff20512a7fa5070ba6e7dd5c171148ca7d580955795bf97c79c2456144a
-F src/dbpage.c 6c52074b0edb914d526c85541ca0f1fd23822b5dac39b6ee9b7f375d9fa592e9
+F src/dbpage.c d1778e74b15549e3967974b5addf740462db1a9d441da35666177f5a6ccf34c5
 F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
 F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42
 F src/expr.c 3329173aacc6c37da3971b6253827799b32e301673be00126df8271bf018e15f
@@ -2202,8 +2202,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 4fab85b3d0d1cad2d185f2456de7ddf281badf8561cc051e10e16655441dcc84
-R 9aaaecad314aea90d45c80b60798b57a
+P 8f725472b0fe62359a4cd3237b43d7b834e042d8ce425abde06e3ed6c62dbafa
+R f83865aeabb05b29d2a4c65bc73bad9b
 U drh
-Z 2a765bcb487b40c3fb2da87580a07616
+Z 186addad6fd799939fab1f666168b1b5
 # Remove this line to create a well-formed Fossil manifest.
index 2eb63b396b252c0b9f565a24e64464d61ede4fa1..b955e088a978ca83ddcd26bb2890a56b1cafeb35 100644 (file)
@@ -1 +1 @@
-8f725472b0fe62359a4cd3237b43d7b834e042d8ce425abde06e3ed6c62dbafa
+cf8b99e17872c054e7ac0832d12633ce497c843dfc67148daf3b17762fd2b424
index 124952456ca3aecb41ee627ed33fc29bab2e2300..3bb18b6775c46856a929ceb542d13e8eec74f480 100644 (file)
@@ -428,7 +428,9 @@ static int dbpageSync(sqlite3_vtab *pVtab){
   if( pTab->pgnoTrunc>0 ){
     Btree *pBt = pTab->db->aDb[pTab->iDbTrunc].pBt;
     Pager *pPager = sqlite3BtreePager(pBt);
-    sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc);
+    if( pTab->pgnoTrunc<sqlite3BtreeLastPage(pBt) ){
+      sqlite3PagerTruncateImage(pPager, pTab->pgnoTrunc);
+    }
   }
   pTab->pgnoTrunc = 0;
   return SQLITE_OK;