]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix an off-by-one error that cause a loop to (harmlessly) run more times
authordrh <>
Wed, 25 Mar 2026 21:23:23 +0000 (21:23 +0000)
committerdrh <>
Wed, 25 Mar 2026 21:23:23 +0000 (21:23 +0000)
than necessary.  Performance optimization, not a bug fix.

FossilOrigin-Name: 58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f

manifest
manifest.uuid
src/util.c

index ae52e9f57379f2f5f9297f517b7583b58b9856e5..a00ab7cee011d1acbe09962b2de3a1a7914c0971 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Performance\soptimization\swhen\szero-padding\sin\sprintf().
-D 2026-03-25T21:05:18.704
+C Fix\san\soff-by-one\serror\sthat\scause\sa\sloop\sto\s(harmlessly)\srun\smore\stimes\nthan\snecessary.\s\sPerformance\soptimization,\snot\sa\sbug\sfix.
+D 2026-03-25T21:23:23.021
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -798,7 +798,7 @@ F src/trigger.c 4bf3bfb3851d165e4404a9f9e69357345f3f7103378c07e07139fdd8aeb7bd20
 F src/update.c 3e5e7ff66fa19ebe4d1b113d480639a24cc1175adbefabbd1a948a07f28e37cf
 F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
-F src/util.c 2e5433101a395eda9e465fb7387436a6b06b95ba6b20a8f5ae372228d3d647e2
+F src/util.c 47245522b755618abd6aeb2c51e25339331b6f24eb6520ee6ad2c7bd73fd4eca
 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
 F src/vdbe.c dbafc6f5762f9ae90d9dc9ed065a31743a8ceafbdbfb1a0a3a228921fb3cc36a
 F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71
@@ -2195,8 +2195,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P c818165fd709b813ab07788662bf69205ece2dcea41346609b3439950f900057
-R 5784240f99f10ba69ee88ee168660db5
+P dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa
+R 83396870d61c46958fe0688ee28ba9e3
 U drh
-Z 148dd6c39616c6fe7322257317ab64e5
+Z 852f9de7fcb576f54e2f0cced0d6affa
 # Remove this line to create a well-formed Fossil manifest.
index ea5ab12780a50896bc9267d792d2a59966e48dba..ddcd37e68ed6d957b1096062787973e1100c5fd9 100644 (file)
@@ -1 +1 @@
-dbd81abdc6633124e72999321db6fc8640851fa5eb063e6317a4c3e57b48dbaa
+58f4e058f1cbb798b8a48208c6310fd10ca9cd1fc7c550f3ed283cf38ae45c2f
index 896f25d7d32c78394cf725bf1180104b7074868d..75d6cc97ba7293e0f2aa2e395ea4e5cba780baec 100644 (file)
@@ -1406,7 +1406,7 @@ void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRound){
         int jj, kk;
         u64 v2;
         assert( z[0]!='0' );
-        for(jj=14; z[jj-1]=='0'; jj--){}
+        for(jj=13; z[jj-1]=='0'; jj--){}
         v2 = z[0] - '0';
         for(kk=1; kk<jj; kk++) v2 = (v2*10) + z[kk] - '0';
         if( r==sqlite3Fp10Convert2(v2, exp + n - jj) ){