diff options
author | drh <drh@noemail.net> | 2004-03-17 23:32:08 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2004-03-17 23:32:08 +0000 |
commit | 8b8891bf0aa39fde98831f4cdd391c1a22e672f1 (patch) | |
tree | cfed143cfb276dc0a09bf69eaf27403e422a617c /src/expr.c | |
parent | 276fd588d8cea5886cdc462c9072be8bd224b865 (diff) | |
download | sqlite-8b8891bf0aa39fde98831f4cdd391c1a22e672f1.tar.gz sqlite-8b8891bf0aa39fde98831f4cdd391c1a22e672f1.zip |
Fix a VDBE stack overflow that occurs when the left-hand side of an IN
expression is NULL and the result is stored on the stack rather than used
to control a jump. Ticket #668. (CVS 1299)
FossilOrigin-Name: fc7a7975b03c144c2db3566facd008d3701c735e
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/expr.c b/src/expr.c index dca48e35e..eafc50ce8 100644 --- a/src/expr.c +++ b/src/expr.c @@ -12,7 +12,7 @@ ** This file contains routines used for analyzing expressions and ** for generating VDBE code that evaluates expressions in SQLite. ** -** $Id: expr.c,v 1.112 2004/02/25 13:47:31 drh Exp $ +** $Id: expr.c,v 1.113 2004/03/17 23:32:08 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -1163,7 +1163,7 @@ void sqliteExprCode(Parse *pParse, Expr *pExpr){ sqliteExprCode(pParse, pExpr->pLeft); addr = sqliteVdbeCurrentAddr(v); sqliteVdbeAddOp(v, OP_NotNull, -1, addr+4); - sqliteVdbeAddOp(v, OP_Pop, 1, 0); + sqliteVdbeAddOp(v, OP_Pop, 2, 0); sqliteVdbeAddOp(v, OP_String, 0, 0); sqliteVdbeAddOp(v, OP_Goto, 0, addr+6); if( pExpr->pSelect ){ |