]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix another off-by-one error.
authordrh <>
Thu, 7 May 2026 14:30:34 +0000 (14:30 +0000)
committerdrh <>
Thu, 7 May 2026 14:30:34 +0000 (14:30 +0000)
FossilOrigin-Name: 8ae724a647dfcb986c4037caaab07e5d0188e66b66039a4758937c963f1fcbf7

manifest
manifest.uuid
src/printf.c
test/printf.test

index bdd1ded6867120936ae4a74169361a9056ebfd6b..b83f2e107c0c920b18474809fd6f600d921330dc 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Bug\sfixes\sin\sthe\snew\s%J\sand\s%j\slogic.
-D 2026-05-07T14:14:05.317
+C Fix\sanother\soff-by-one\serror.
+D 2026-05-07T14:30:34.304
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -731,7 +731,7 @@ F src/pcache.h 092b758d2c5e4dabb30eae46d8dfad77c0f70b16bf3ff1943f7a232b0fe0d4ba
 F src/pcache1.c 131ca0daf4e66b4608d2945ae76d6ed90de3f60539afbd5ef9ec65667a5f2fcd
 F src/pragma.c 789ef67117b74b5be0a2db6681f7f0c55e6913791b9da309aefd280de2c8a74d
 F src/prepare.c f6a6e28a281bd1d1da12f47d370a81af46159b40f73bf7fa0b276b664f9c8b7d
-F src/printf.c 69668d2eb82fabef57ed2d3876ce3f30056d17faf5e42aae08518fc537c08388
+F src/printf.c 484e590f5a211038cd3a2232adb2958d6d94d6d1b407d32022a87d60cfa8711d
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
 F src/resolve.c fcc406bfb055bee9954ee77c023f4a2a66a24bcdf1573516a72280811a269c20
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
@@ -1519,7 +1519,7 @@ F test/pragma5.test 7b33fc43e2e41abf17f35fb73f71b49671a380ea92a6c94b6ce530a25f8d
 F test/pragma6.test c5ec577ba087954b4dfa619a3cbe97b155b60a0af487527abe89b10fc17e6512
 F test/pragmafault.test 275edaf3161771d37de60e5c2b412627ac94cef11739236bec12ed1258b240f8
 F test/prefixes.test b524a1c44bffec225b9aec98bd728480352aa8532ac4c15771fb85e8beef65d9
-F test/printf.test e46ac5497ce60a6518f81637bb0eb27b37a7db967ff78c5d3d918e34da52a39c
+F test/printf.test 7a137f4edfb2051cbb797b28e2bcd60ea23d5b85b9a4ebc7c6579aeb81441594
 F test/printf2.test 3f55c1871a5a65507416076f6eb97e738d5210aeda7595a74ee895f2224cce60
 F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb
 F test/ptrchng.test ef1aa72d6cf35a2bbd0869a649b744e9d84977fc
@@ -2203,8 +2203,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 0b102f2076586c08b134c78cc18acdd05555fa2b534c895535e96a0466661910
-R 7825f44823aab00b73665d1df4dc546a
+P d1b55572c76569cb1e999028e79bcf2e76069f8778f0c8e933ace606d7b6a8b2
+R 00088e04b556044b39910b53a910f4d1
 U drh
-Z c2340b07b2f8617839d6405636d77d8d
+Z ddef14cfa7994f2b629459eaf11f4b2e
 # Remove this line to create a well-formed Fossil manifest.
index 129e47ed76f8345661f4de43718e679ce44f1aab..4410282670a6f9bedfc5358f239994458b185883 100644 (file)
@@ -1 +1 @@
-d1b55572c76569cb1e999028e79bcf2e76069f8778f0c8e933ace606d7b6a8b2
+8ae724a647dfcb986c4037caaab07e5d0188e66b66039a4758937c963f1fcbf7
index 38ab5c701e9c5f6dcc4b73f729425c83586049cd..419cfa92b506970cd65b99d739f2d2e7e0ffcb6f 100644 (file)
@@ -902,7 +902,7 @@ void sqlite3_str_vappendf(
           }
           for(i=j=0; i<px; i++){
             if( (ch = ((u8*)escarg)[i])<=0x1f || ch=='"' || ch=='\\' ){
-              if( j<i-1 ) sqlite3_str_append(pAccum, &escarg[j], i-j);
+              if( j<i ) sqlite3_str_append(pAccum, &escarg[j], i-j);
               j = i+1;
               if( ch==0 ) break;
               sqlite3_str_appendchar(pAccum, 1, '\\');
index 1f6af03936dd953a53d81a543bdcb90094290844..5cd8c4a3e89e25f52f3791384c1c6763b92838c1 100644 (file)
@@ -3934,6 +3934,9 @@ do_execsql_test printf-20.23 {
 do_execsql_test printf-20.24 {
   SELECT format('<%j>','abc'||char(0x1f)||'def');
 } {{<abc\u001fdef>}}
+do_execsql_test printf-20.25 {
+  SELECT format('<%.4j>','a"b"c');
+} {{<a\"b\">}}
 
 
 finish_test