aboutsummaryrefslogtreecommitdiff
path: root/src/expr.c
diff options
context:
space:
mode:
authordrh <>2024-11-29 11:49:05 +0000
committerdrh <>2024-11-29 11:49:05 +0000
commit5c208f36a453c821cfcb021d643872e5ebfadbff (patch)
tree5ad2b6537f66c66123cfffe1d567eb4df68fa405 /src/expr.c
parent2aac89661170be2d0a0ad91baa83d11e13df4bea (diff)
downloadsqlite-5c208f36a453c821cfcb021d643872e5ebfadbff.tar.gz
sqlite-5c208f36a453c821cfcb021d643872e5ebfadbff.zip
Fix a NEVER() in the iif() logic that can be true if compiled with
SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS. Problem introduced by [eb5ac9e5b9a4f9c8]. FossilOrigin-Name: 3ec2df5a6c731b59b0ab132ee59c74d107f9c4bd32cf47d9776887858b9c0dea
Diffstat (limited to 'src/expr.c')
-rw-r--r--src/expr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/expr.c b/src/expr.c
index d0282f714..afa9ba00f 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -6478,7 +6478,11 @@ static int sqlite3ExprIsIIF(sqlite3 *db, const Expr *pExpr){
if( (z[0]!='i' && z[0]!='I') ) return 0;
if( pExpr->x.pList==0 ) return 0;
pDef = sqlite3FindFunction(db, z, pExpr->x.pList->nExpr, ENC(db), 0);
+#ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
+ if( pDef==0 ) return 0;
+#else
if( NEVER(pDef==0) ) return 0;
+#endif
if( (pDef->funcFlags & SQLITE_FUNC_INLINE)==0 ) return 0;
if( NEVER(SQLITE_PTR_TO_INT(pDef->pUserData)!=INLINEFUNC_iif) ) return 0;
}else if( pExpr->op==TK_CASE ){