diff options
author | danielk1977 <danielk1977@noemail.net> | 2008-04-24 12:36:35 +0000 |
---|---|---|
committer | danielk1977 <danielk1977@noemail.net> | 2008-04-24 12:36:35 +0000 |
commit | d7eb2ed5cd61e293ff1b881f9fd8c84d05e73f51 (patch) | |
tree | 664a6b36722d8bd81369448839d37d969966b427 /src/expr.c | |
parent | 36961ed23f377f3f2a13b9350c66490391af8f19 (diff) | |
download | sqlite-d7eb2ed5cd61e293ff1b881f9fd8c84d05e73f51.tar.gz sqlite-d7eb2ed5cd61e293ff1b881f9fd8c84d05e73f51.zip |
Fix a crash that can follow a malloc() failure in malloc7.test. (CVS 5042)
FossilOrigin-Name: 85eedad186327a1f0b0983413b833efd41640d0e
Diffstat (limited to 'src/expr.c')
-rw-r--r-- | src/expr.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/expr.c b/src/expr.c index f58743bc9..1aab48be2 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.367 2008/04/15 12:14:22 drh Exp $ +** $Id: expr.c,v 1.368 2008/04/24 12:36:35 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> @@ -2116,7 +2116,8 @@ void sqlite3ExprHardCopy(Parse *pParse, int iReg, int nReg){ v = pParse->pVdbe; addr = sqlite3VdbeCurrentAddr(v); pOp = sqlite3VdbeGetOp(v, addr-1); - if( pOp->opcode==OP_SCopy && pOp->p1>=iReg && pOp->p1<iReg+nReg ){ + assert( pOp || pParse->db->mallocFailed ); + if( pOp && pOp->opcode==OP_SCopy && pOp->p1>=iReg && pOp->p1<iReg+nReg ){ pOp->opcode = OP_Copy; } } |