diff options
author | drh <> | 2024-11-29 11:49:05 +0000 |
---|---|---|
committer | drh <> | 2024-11-29 11:49:05 +0000 |
commit | 5c208f36a453c821cfcb021d643872e5ebfadbff (patch) | |
tree | 5ad2b6537f66c66123cfffe1d567eb4df68fa405 /src/expr.c | |
parent | 2aac89661170be2d0a0ad91baa83d11e13df4bea (diff) | |
download | sqlite-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.c | 4 |
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 ){ |