]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When inserting a 3-byte cell into a btree, ensure that the extra padding byte is...
authormistachkin <mistachkin@noemail.net>
Wed, 6 Mar 2024 20:56:52 +0000 (20:56 +0000)
committermistachkin <mistachkin@noemail.net>
Wed, 6 Mar 2024 20:56:52 +0000 (20:56 +0000)
FossilOrigin-Name: f3e841873dffaa8cd2f4f3cf260487ed402febb99b9ccad04e2a1d481e903aca

manifest
manifest.uuid
src/btree.c

index d88091258e53f34b293a9e08028c3ac2581d9a62..ae72029b7d0f4e439d87fd09260e8cc2d920ee55 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Rig\ssqlite3_serialize()\sso\sthat\sit\swill\sinitialize\sa\spreviously\suninitialized\sdatabase\sprior\sto\sserializing\sit,\sso\sthat\sit\sdoes\snot\shave\sa\szero-byte\ssize\sand\sdoes\snot\sreturn\sNULL\s(except\sfor\sOOM).\s\s[forum:/forumpost/498777780e16880a|Forum\sthread\s498777780e16880a].
-D 2024-03-06T20:55:44.426
+C When\sinserting\sa\s3-byte\scell\sinto\sa\sbtree,\sensure\sthat\sthe\sextra\spadding\sbyte\sis\s0x00.\s\sThis\sis\snot\snecessary\sfor\ssecurity,\sas\sfar\sas\sI\scan\stell,\sbut\sit\sseems\slike\sa\sreasonable\sprecaution.
+D 2024-03-06T20:56:52.386
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -677,7 +677,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 c64df2b1623501e397128261de58d3ab44c301e4eb993a4055aa971444420200
+F src/btree.c 5410768087e524f331816c751c4b1f714693fa864a448337e443e49cc397aeaf
 F src/btree.h 03e3356f5208bcab8eed4e094240fdac4a7f9f5ddf5e91045ce589f67d47c240
 F src/btreeInt.h 3e2589726c4f105e653461814f65857465da68be1fac688de340c43b873f4062
 F src/build.c e7d9044592eeeea8e78d8ae53ca8d31fd6e92ca0d4f53e2f2e8ccf7352e0b04b
@@ -2160,9 +2160,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 6d385ccda8aba16a37c5e8c39f3aeba97c472321e4c8c9efac2de4518b61bdc8
-Q +e638d5e408ea2e189b6771d16bbc2e42c606e88e05fbea78079b6e39e41f344c
-R dd82bdbc7bb71ea5e69302f99eff1eec
+P 22a33f133e3e833c960f46e1b4c74043010181ff7ba9e57f2d009b65d3275d82
+Q +5766f1279dab91e030d4dcf5133659e5cedf914a1628ccf00d67d8e50a9957fd
+R b691fdaab2b47111553543c1888af596
 U mistachkin
-Z 133a2b6085ad0091b20bee86ef7e5549
+Z 6c5c8f9b4835564916ac3776cb0ec051
 # Remove this line to create a well-formed Fossil manifest.
index 66134c89d42d618e2bfc40697358dcf943bfe321..6618d115d7af599b3c7e6007721e36779076f3a0 100644 (file)
@@ -1 +1 @@
-22a33f133e3e833c960f46e1b4c74043010181ff7ba9e57f2d009b65d3275d82
\ No newline at end of file
+f3e841873dffaa8cd2f4f3cf260487ed402febb99b9ccad04e2a1d481e903aca
\ No newline at end of file
index c41fb811ab348af83a9b1783e703ccd3f45ec049..0fdc680f41cfb9bfcbeacb6b3dabd67663a3e8e5 100644 (file)
@@ -6956,7 +6956,10 @@ static int fillInCell(
     n = nHeader + nPayload;
     testcase( n==3 );
     testcase( n==4 );
-    if( n<4 ) n = 4;
+    if( n<4 ){
+      n = 4;
+      pPayload[nPayload] = 0;
+    }
     *pnSize = n;
     assert( nSrc<=nPayload );
     testcase( nSrc<nPayload );
@@ -9402,7 +9405,10 @@ int sqlite3BtreeInsert(
   if( flags & BTREE_PREFORMAT ){
     rc = SQLITE_OK;
     szNew = p->pBt->nPreformatSize;
-    if( szNew<4 ) szNew = 4;
+    if( szNew<4 ){
+      szNew = 4;
+      newCell[3] = 0;
+    }
     if( ISAUTOVACUUM(p->pBt) && szNew>pPage->maxLocal ){
       CellInfo info;
       pPage->xParseCell(pPage, newCell, &info);