diff options
author | drh <drh@noemail.net> | 2018-11-26 18:09:15 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2018-11-26 18:09:15 +0000 |
commit | eea8eb6d04f5eb2528f21d0585d603e4c1abe2ae (patch) | |
tree | 6504b0e99e092c6285f77292ec7796b0ce100f1a /src/resolve.c | |
parent | 49b269e0955b86db3205c11153928e093197fa38 (diff) | |
download | sqlite-eea8eb6d04f5eb2528f21d0585d603e4c1abe2ae.tar.gz sqlite-eea8eb6d04f5eb2528f21d0585d603e4c1abe2ae.zip |
Do not allow direct access to internal-use SQL functions such as
sqlite_rename_column() and sqlite3_rename_table() except when the
new SQLITE_TESTCTRL_INTERNAL_FUNCTIONS flag is set.
FossilOrigin-Name: 6e1330545e7b74fe5f1f20751a3425e2788441485fc07fcb7626e448c72027ce
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/resolve.c b/src/resolve.c index 34a051583..0c7dfc0b2 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -771,6 +771,15 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ notValid(pParse, pNC, "non-deterministic functions", NC_IdxExpr|NC_PartIdx); } + if( (pDef->funcFlags & SQLITE_FUNC_INTERNAL)!=0 + && pParse->nested==0 + && sqlite3Config.bInternalFunctions==0 + ){ + /* Internal-use-only functions are disallowed unless the + ** SQL is being compiled using sqlite3NestedParse() */ + no_such_func = 1; + pDef = 0; + } } if( 0==IN_RENAME_OBJECT ){ |