]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix PRAGMA trusted_schema=OFF and similar so that it restricts the kinds
authordrh <>
Thu, 8 May 2025 16:18:18 +0000 (16:18 +0000)
committerdrh <>
Thu, 8 May 2025 16:18:18 +0000 (16:18 +0000)
of functions in CHECK constraints that the documentation says it does.  It
was letting through some function that it ought not have.  This is a
defect in [5720924cb07766cd].  See
[forum:/forumpost/3fa9d44c0b381342|forum thread 2025-05-08T08:50Z].
Additional test cases will be added separately.

FossilOrigin-Name: 25920beebf71ebc9a1bb9f56932280c9e03390f26fe9da2258f950979b238ce6

manifest
manifest.uuid
src/resolve.c

index 845eafd912b2ffd1319b41b56486a0ed56a3dd8a..2587db58a54d6d1d37f072b59f556a9b9d417508 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Internal\sdoc\stypo\sfix.\sNo\scode\schanges.
-D 2025-05-08T13:51:55.418
+C Fix\sPRAGMA\strusted_schema=OFF\sand\ssimilar\sso\sthat\sit\srestricts\sthe\skinds\nof\sfunctions\sin\sCHECK\sconstraints\sthat\sthe\sdocumentation\ssays\sit\sdoes.\s\sIt\nwas\sletting\sthrough\ssome\sfunction\sthat\sit\sought\snot\shave.\s\sThis\sis\sa\ndefect\sin\s[5720924cb07766cd].\s\sSee\n[forum:/forumpost/3fa9d44c0b381342|forum\sthread\s2025-05-08T08:50Z].\nAdditional\stest\scases\swill\sbe\sadded\sseparately.
+D 2025-05-08T16:18:18.268
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -783,7 +783,7 @@ F src/pragma.c 30b535d0a66348df844ee36f890617b4cf45e9a22dcbc47ec3ca92909c50aaf1
 F src/prepare.c 1832be043fce7d489959aae6f994c452d023914714c4d5457beaed51c0f3d126
 F src/printf.c 3b91c334f528359145f4dde0dedd945bbb21044d0825ea064934d7222d61662c
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
-F src/resolve.c 34497ac863a1e2580d77869a39582f6de9d56a2ebbb560dcd63fa8e0017e3141
+F src/resolve.c d40fe18d7c2fd0339f5846ffcf7d6809866e380acdf14c76fb2af87e9fe13f64
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c 1a5956231f7c57571288eaad61e5c37aaf0f3acb5c8a5ea0b896938166b62fa2
 F src/shell.c.in 2c904da4431fed365e7d5029b8cb2da46cb3e8cf8a09305d1478836a2301ea96
@@ -2207,8 +2207,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P cf8b55b3b6f0b73158e21731a206d5a8d8d9892989d91171a11c6dbbee34b338
-R 3855ad5a8a1ba88adba7271c27217883
-U stephan
-Z 5b7d3912ff74158c29df6a805da9e667
+P ac2aa39f7e3ae7ac921fac6566186939a1282f80ced5b3e3d5006a77ecf583ff
+R 120a74143a99085785628ecaf4c3a280
+U drh
+Z aaef89e67a70528b909d01d425acdd0f
 # Remove this line to create a well-formed Fossil manifest.
index 33f0c49eb417490b835d7a147e4dc7e20fdc1266..17b6640b3211a9674c90c719521630e9280e9952 100644 (file)
@@ -1 +1 @@
-ac2aa39f7e3ae7ac921fac6566186939a1282f80ced5b3e3d5006a77ecf583ff
+25920beebf71ebc9a1bb9f56932280c9e03390f26fe9da2258f950979b238ce6
index 79c69abdaaf968660a3da4ccf0fbd1c79715f6a4..3961a2009b6e4660cd474240aea709039b2a79da 100644 (file)
@@ -1208,7 +1208,6 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
         }else{
           assert( (NC_SelfRef & 0xff)==NC_SelfRef ); /* Must fit in 8 bits */
           pExpr->op2 = pNC->ncFlags & NC_SelfRef;
-          if( pNC->ncFlags & NC_FromDDL ) ExprSetProperty(pExpr, EP_FromDDL);
         }
         if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0
          && pParse->nested==0
@@ -1224,6 +1223,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
         if( (pDef->funcFlags & (SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE))!=0
          && !IN_RENAME_OBJECT
         ){
+          if( pNC->ncFlags & NC_FromDDL ) ExprSetProperty(pExpr, EP_FromDDL);
           sqlite3ExprFunctionUsable(pParse, pExpr, pDef);
         }
       }