]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Have the session module detect some corrupt changesets earlier. corrupt-changeset_fix
authordan <Dan Kennedy>
Tue, 14 Apr 2026 20:17:41 +0000 (20:17 +0000)
committerdan <Dan Kennedy>
Tue, 14 Apr 2026 20:17:41 +0000 (20:17 +0000)
FossilOrigin-Name: 0de91ff0d798cff21289d893cc441b89fc37b051d5cdf611d92d3ae2bc41cdf2

ext/session/sqlite3session.c
manifest
manifest.tags
manifest.uuid

index 34f117c3ade833e6ad5792fcf41ea4efe79f3973..427a5a5915cb5c278a60cedab9dc916a077fa8ba 100644 (file)
@@ -3703,9 +3703,11 @@ static int sessionChangesetBufferRecord(
         rc = sessionInputBuffer(pIn, nByte);
       }else if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){
         nByte += 8;
+      }else if( eType!=0 && eType!=SQLITE_NULL ){
+        rc = SQLITE_CORRUPT_BKPT;
       }
     }
-    if( (pIn->iNext+nByte)>pIn->nData ){
+    if( rc==SQLITE_OK && (pIn->iNext+nByte)>pIn->nData ){
       rc = SQLITE_CORRUPT_BKPT;
     }
   }
index d5adb12428359f77345767e2d72f0d4567fba1df..de76877401056d6faaaf912fb5a943b8f6bbaae8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Handle\sa\sspecial\scase\sof\sa\scorrupt\schangeset\sin\ssqlite3changegroup_add().
-D 2026-04-14T20:02:49.778
+C Have\sthe\ssession\smodule\sdetect\ssome\scorrupt\schangesets\searlier.
+D 2026-04-14T20:17:41.604
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -571,7 +571,7 @@ F ext/session/sessionrowid.test 85187c2f1b38861a5844868126f69f9ec62223a03449a98a
 F ext/session/sessionsize.test 8fcf4685993c3dbaa46a24183940ab9f5aa9ed0d23e5fb63bfffbdb56134b795
 F ext/session/sessionstat1.test 5e718d5888c0c49bbb33a7a4f816366db85f59f6a4f97544a806421b85dc2dec
 F ext/session/sessionwor.test 6fd9a2256442cebde5b2284936ae9e0d54bde692d0f5fd009ecef8511f4cf3fc
-F ext/session/sqlite3session.c b361c0092055566b713b0324234bc10e182526acbb78caf525bbd9fd5017ec8a
+F ext/session/sqlite3session.c 871d8a4574bfc682ca0816efb55c85c5fea048e0becf9367a4b271d6a4474b2f
 F ext/session/sqlite3session.h 063e7bf7be2fff874456f452a224b5b3013b25682d108933b0351c93a1279b9c
 F ext/session/test_session.c 2a02a68b522e2f3d4a64b2a4733af54b0f3e500769aeccd5bcbdd440103db069
 F ext/wasm/GNUmakefile 68c750f173106d9d63f12c1edf1256c6f4bad9894b155da5db64322f4912de4b
@@ -2198,8 +2198,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P cf7dad1b105ab35cd7180efec735b7cbeaf42b8d53dfec5582b63cd121c3425c
-R 79e42c0964d23da7fb15d3f84471544d
+P 49b3bac482c831f503c7f90c35959e7ea731950e991baba86b2ab95987d2539b
+R 35d9142b282e68f29f0bd8f4e7936fb8
 U dan
-Z 2ece5377d242a94c0e9715b6cd2eca3d
+Z 51eb5cc01bfe87f83b8508470bd3b2ff
 # Remove this line to create a well-formed Fossil manifest.
index bec971799ff1b8ee641c166c7aeb22d12c785393..58305a10557cbb3365350b2862860d146b4b34db 100644 (file)
@@ -1,2 +1,2 @@
-branch trunk
-tag trunk
+branch corrupt-changeset_fix
+tag corrupt-changeset_fix
index 996f05d62a1a5d3de8cdbf38f722edebc58bf534..a0b848bcf6d975c0d93ed640af71b52cf99cae70 100644 (file)
@@ -1 +1 @@
-49b3bac482c831f503c7f90c35959e7ea731950e991baba86b2ab95987d2539b
+0de91ff0d798cff21289d893cc441b89fc37b051d5cdf611d92d3ae2bc41cdf2