diff options
author | drh <drh@noemail.net> | 2020-01-03 21:57:53 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2020-01-03 21:57:53 +0000 |
commit | 4be621e1ba6a5ef729cf4f90896b16421fc6a4e2 (patch) | |
tree | e5ac116d0c3d9c6a8c9837119071971c9314e726 /src/resolve.c | |
parent | c4ad849921ff0840deca5285d8934e898b1261cd (diff) | |
download | sqlite-4be621e1ba6a5ef729cf4f90896b16421fc6a4e2.tar.gz sqlite-4be621e1ba6a5ef729cf4f90896b16421fc6a4e2.zip |
Invert the SQLITE_FUNC_SAFE bit to be SQLITE_FUNC_UNSAFE. The external
bit is still SQLITE_INNOCUOUS. It gets inverted as the appdef function
is registered.
FossilOrigin-Name: 1c266cb3be46d26e640752a99979acb1a1809361ba70ca3fca981c42383c360e
Diffstat (limited to 'src/resolve.c')
-rw-r--r-- | src/resolve.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/resolve.c b/src/resolve.c index f934cf602..ef77d8be5 100644 --- a/src/resolve.c +++ b/src/resolve.c @@ -886,8 +886,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ no_such_func = 1; pDef = 0; }else - if( (pDef->funcFlags & (SQLITE_FUNC_DIRECT|SQLITE_FUNC_SAFE)) - != SQLITE_FUNC_SAFE + if( (pDef->funcFlags & (SQLITE_FUNC_DIRECT|SQLITE_FUNC_UNSAFE))!=0 && ExprHasProperty(pExpr, EP_Indirect) && !IN_RENAME_OBJECT ){ @@ -896,7 +895,8 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ ){ /* Functions prohibited in triggers and views if: ** (1) tagged with SQLITE_DIRECTONLY - ** (2) not tagged with SQLITE_INNOCUOUS and + ** (2) not tagged with SQLITE_INNOCUOUS (which means it + ** is tagged with SQLITE_FUNC_UNSAFE) and ** SQLITE_DBCONFIG_UNSAFE_IN_VIEW is off */ sqlite3ErrorMsg(pParse, "%s() prohibited in triggers and views", |