]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Do not allow internal-use-only functions to be coded, anywhere, unless
authordrh <>
Tue, 23 Jun 2026 19:08:18 +0000 (19:08 +0000)
committerdrh <>
Tue, 23 Jun 2026 19:08:18 +0000 (19:08 +0000)
inside of a nested parse (which is the case for ALTER TABLE) or if
the appropriate test-control is activated.
[bugs:/info/2026-06-23T15:49:27Z|Bug 2026-06-23T15:49:27Z].

FossilOrigin-Name: a145307e4d0b621c5493cecc7c826e8422cbd8dbc8cd9a042b8ec9e05d389eb6

manifest
manifest.uuid
src/expr.c

index 474434a8a8c5ca208637e46d05518c4da62d5deb..0ebe804215150edd1404e62a0696496d8a1169ff 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\stypo\sin\sa\scomment.\s\sNo\scode\schanges.
-D 2026-06-23T15:35:29.301
+C Do\snot\sallow\sinternal-use-only\sfunctions\sto\sbe\scoded,\sanywhere,\sunless\ninside\sof\sa\snested\sparse\s(which\sis\sthe\scase\sfor\sALTER\sTABLE)\sor\sif\nthe\sappropriate\stest-control\sis\sactivated.\n[bugs:/info/2026-06-23T15:49:27Z|Bug\s2026-06-23T15:49:27Z].
+D 2026-06-23T19:08:18.383
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -688,7 +688,7 @@ F src/date.c 86d9530729eeb5b3d833e7403de495f4d4b79f3d5f7e74bcc8abda237f5aeafb
 F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
 F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
 F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
-F src/expr.c e97dd9f6ada4c448764e225d8963091bf630b3efb2c92e4d0762571cca2a14e5
+F src/expr.c db0f3e084f4bb2b249a5890dc9a0d3614d503cda009357bfdeb040f96322ccfe
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
 F src/func.c 7e049176003271095ba560bca90995c8cb7c1e944aee539513daba015b172a18
@@ -2208,8 +2208,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P d85204bbd92f362c5c7d744d59f7be6923cdbf1f15f7220e70af4090161c24c2
-R 3d8238f950b24c1c1888b28468416531
+P 8a535a36a90cf12b783469289a882d1313038d444b4a7f04e3495ae9bdec416d
+R bdcde85ab85e1f4afa8f626c7e398d47
 U drh
-Z 193f264a876f59696aa4bf230f8008b3
+Z 99855b74f04f71968ba1547588fd3439
 # Remove this line to create a well-formed Fossil manifest.
index 929080867a5e88ae92887eb7e4c2aad5ffe8ee91..37513c06a4ef1a5903ba0b0aa0c8e29292bd5400 100644 (file)
@@ -1 +1 @@
-8a535a36a90cf12b783469289a882d1313038d444b4a7f04e3495ae9bdec416d
+a145307e4d0b621c5493cecc7c826e8422cbd8dbc8cd9a042b8ec9e05d389eb6
index 6ea2a5ae227e02cdf6e682083df1de5002467c76..3b9a0170c8db84568f5b43be054f278690539081 100644 (file)
@@ -5384,7 +5384,12 @@ expr_code_doover:
         pDef = sqlite3FindFunction(db, "unknown", nFarg, enc, 0);
       }
 #endif
-      if( pDef==0 || pDef->xFinalize!=0 ){
+      if( pDef==0
+       || pDef->xFinalize!=0
+       || ((pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0 &&
+           !pParse->nested &&
+           (db->mDbFlags & DBFLAG_InternalFunc)==0)
+      ){
         sqlite3ErrorMsg(pParse, "unknown function: %#T()", pExpr);
         break;
       }