]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
The prefix_length() function should stop at the first NUL terminator.
authordrh <>
Wed, 3 Jun 2026 11:07:47 +0000 (11:07 +0000)
committerdrh <>
Wed, 3 Jun 2026 11:07:47 +0000 (11:07 +0000)
[bugs:/info/2026-06-03T07:42:00Z|Bug 2026-06-03T07:42:00Z].

FossilOrigin-Name: a9b8bdea0683bb03015ea1ee38f75636c80c189eed4b786b6d3d654a831cfdfb

ext/misc/prefixes.c
manifest
manifest.uuid
test/prefixes.test

index 9637b92fbe9453ab81def36258beac64e20d5aea..ab60a22a908668cb004806ac9c42d1c054973b1f 100644 (file)
@@ -296,7 +296,7 @@ static void prefixLengthFunc(
 
   nByte = (nL > nR ? nL : nR);
   for(i=0; i<nByte; i++){
-    if( zL[i]!=zR[i] ) break;
+    if( zL[i]==0 || zL[i]!=zR[i] ) break;
     if( (zL[i] & 0xC0)!=0x80 ) nRet++;
   }
 
index 15ca91ab7d44a7ad922a47c233060d7927e16389..0f0346532a3bb8fff24b3791dff85be42b5c55d2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\sthe\s(unused,\suntested,\sand\sunsupported)\sext/misc/compress.c\sroutines\nresponsive\sto\sOOM\sconditions.\n[bugs:/info/2026-06-03T08:28:36Z|Bug\s2026-06-03T08:28:36Z].
-D 2026-06-03T10:55:08.933
+C The\sprefix_length()\sfunction\sshould\sstop\sat\sthe\sfirst\sNUL\sterminator.\n[bugs:/info/2026-06-03T07:42:00Z|Bug\s2026-06-03T07:42:00Z].
+D 2026-06-03T11:07:47.004
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -389,7 +389,7 @@ F ext/misc/noop.c f1a21cc9b7a4e667e5c8458d80ba680b8bd4315a003f256006046879f679c5
 F ext/misc/normalize.c fbb144a861809686ff2b5b6eee8bb2e1207f9bf13ce7376e5273c700a1eafbd5
 F ext/misc/pcachetrace.c f4227ce03fb16aa8d6f321b72dd051097419d7a028a9853af048bee7645cb405
 F ext/misc/percentile.c 72e05a21db20a2fa85264b99515941f00ae698824c9db82d7edfbb16cea8ec80
-F ext/misc/prefixes.c efc261429fd8ab43cedc0d38b94d86d87437af5550651bceb618bd7e84e25125
+F ext/misc/prefixes.c e7d3e7a39174db412c5f77c266fa221c2dc3cb2621a9422835a607ad08805eb2
 F ext/misc/qpvtab.c 470a5fffba005c8e1994209e59c1848122351e19522de71beb68d666c4fa39a5
 F ext/misc/randomjson.c ef835fc64289e76ac4873b85fe12f9463a036168d7683cf2b773e36e6262c4ed
 F ext/misc/regexp.c 378e6e84516952a4b9f3f4df88927f20e6538e2609f55b773ed78899dab8206e
@@ -1521,7 +1521,7 @@ F test/pragma4.test 396ef9bff1fb966d41721545ad4b12bfc26aae315f5fe51d9b917828d49e
 F test/pragma5.test 7b33fc43e2e41abf17f35fb73f71b49671a380ea92a6c94b6ce530a25f8d9102
 F test/pragma6.test c5ec577ba087954b4dfa619a3cbe97b155b60a0af487527abe89b10fc17e6512
 F test/pragmafault.test 275edaf3161771d37de60e5c2b412627ac94cef11739236bec12ed1258b240f8
-F test/prefixes.test f2c4f30d5d439ca203ec69d72f5e1cc408916104e5310423542faef8003cf013
+F test/prefixes.test fe52bb0c2fee10fb9b918a095d443ebf31dd48e5e2c7a1b21feba594fe7ff2d0
 F test/printf.test 854ddc19b31e83de41142a6b0c8dbb812fcdbbb127cdcafc0c5efef58b790eee
 F test/printf2.test 3f55c1871a5a65507416076f6eb97e738d5210aeda7595a74ee895f2224cce60
 F test/progress.test ebab27f670bd0d4eb9d20d49cef96e68141d92fb
@@ -2207,8 +2207,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 8a633070e62bdc83a7cf895fd1a22c04b13579659df7cee9584d95096bfffab1
-R 1296c8d935285f91f86e348810ae57f2
+P e3120e2a4339d51210645b14d075abba27dd97bd6bd6d42f445dd5baf3d337e3
+R 8fcdfe448750d6074d7199d4aef38398
 U drh
-Z f9fc0189951370a9381fefa4c165504e
+Z 17c020e22fb72617d4781f26daaf9cb0
 # Remove this line to create a well-formed Fossil manifest.
index 4315a16cebac69992ea79f17d0a776be93c94586..bcb9672dc7d2a5d8f743c8dad681161e661cb968 100644 (file)
@@ -1 +1 @@
-e3120e2a4339d51210645b14d075abba27dd97bd6bd6d42f445dd5baf3d337e3
+a9b8bdea0683bb03015ea1ee38f75636c80c189eed4b786b6d3d654a831cfdfb
index 5a9940ce1c961ef782eebd4c2b7125ad393b34a9..338f95c2a6bd09116a31b78fa83fbc94077d8df1 100644 (file)
@@ -92,5 +92,9 @@ do_execsql_test 3.2 {
   SELECT prefix_length('abc',null);
 } 0
 
+# Bug 2026-06-03T07:42:00Z
+do_execsql_test 3.3 {
+  SELECT prefix_length(zeroblob(15000),zeroblob(5000));
+} 0
 
 finish_test