aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <>2025-05-08 16:18:18 +0000
committerdrh <>2025-05-08 16:18:18 +0000
commit733aff3be84661849b462c8095b105347eb68049 (patch)
tree2c6c59869bb3ce9096931c4fe4ebbc1e4f901d9b
parentcc28137e0894dd9a9618626f64e854787bc3a682 (diff)
downloadsqlite-733aff3be84661849b462c8095b105347eb68049.tar.gz
sqlite-733aff3be84661849b462c8095b105347eb68049.zip
Fix PRAGMA trusted_schema=OFF and similar so that it restricts the kinds
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
-rw-r--r--manifest14
-rw-r--r--manifest.uuid2
-rw-r--r--src/resolve.c2
3 files changed, 9 insertions, 9 deletions
diff --git a/manifest b/manifest
index 845eafd91..2587db58a 100644
--- 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.
diff --git a/manifest.uuid b/manifest.uuid
index 33f0c49eb..17b6640b3 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-ac2aa39f7e3ae7ac921fac6566186939a1282f80ced5b3e3d5006a77ecf583ff
+25920beebf71ebc9a1bb9f56932280c9e03390f26fe9da2258f950979b238ce6
diff --git a/src/resolve.c b/src/resolve.c
index 79c69abda..3961a2009 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -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);
}
}