aboutsummaryrefslogtreecommitdiff
path: root/src/resolve.c
diff options
context:
space:
mode:
authordrh <>2023-12-13 16:45:18 +0000
committerdrh <>2023-12-13 16:45:18 +0000
commit3e4195c60db744c69bb24e71236631a80f2ef547 (patch)
treefa1b26503142ad7d2bc1046025f3d4ee3f97b5a9 /src/resolve.c
parentf7c78a240874e5a008f7e1740e264146c8026fdf (diff)
downloadsqlite-3e4195c60db744c69bb24e71236631a80f2ef547.tar.gz
sqlite-3e4195c60db744c69bb24e71236631a80f2ef547.zip
Avoid invoking sqlite3ExprColUsage() on an unresolve column reference.
dbsqlfuzz fc34aa62df4de103705d11b807074687ffafbda5. FossilOrigin-Name: ac9314c0e335694b48c613145f5397247bb88c51806cd0dc3ed4ec306db4bbad
Diffstat (limited to 'src/resolve.c')
-rw-r--r--src/resolve.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/resolve.c b/src/resolve.c
index 5f675c1d2..43592f8ab 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -182,6 +182,7 @@ Bitmask sqlite3ExprColUsed(Expr *pExpr){
assert( ExprUseYTab(pExpr) );
pExTab = pExpr->y.pTab;
assert( pExTab!=0 );
+ assert( n < pExTab->nCol );
if( (pExTab->tabFlags & TF_HasGenerated)!=0
&& (pExTab->aCol[n].colFlags & COLFLAG_GENERATED)!=0
){
@@ -784,7 +785,7 @@ static int lookupName(
** If a generated column is referenced, set bits for every column
** of the table.
*/
- if( pExpr->iColumn>=0 && pMatch!=0 ){
+ if( pExpr->iColumn>=0 && cnt==1 && pMatch!=0 ){
pMatch->colUsed |= sqlite3ExprColUsed(pExpr);
}