diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/parse.y | 2 | ||||
-rw-r--r-- | src/prepare.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/parse.y b/src/parse.y index 42876feeb..541b9ffe5 100644 --- a/src/parse.y +++ b/src/parse.y @@ -715,7 +715,7 @@ seltablist(A) ::= stl_prefix(A) nm(Y) dbnm(D) LP exprlist(E) RP as(Z) on_using(N seltablist(A) ::= stl_prefix(A) LP seltablist(F) RP as(Z) on_using(N). { if( A==0 && Z.n==0 && N.pOn==0 && N.pUsing==0 ){ A = F; - }else if( F->nSrc==1 ){ + }else if( ALWAYS(F!=0) && F->nSrc==1 ){ A = sqlite3SrcListAppendFromTerm(pParse,A,0,0,&Z,0,&N); if( A ){ SrcItem *pNew = &A->a[A->nSrc-1]; diff --git a/src/prepare.c b/src/prepare.c index 3f87a3719..ff4826502 100644 --- a/src/prepare.c +++ b/src/prepare.c @@ -702,7 +702,11 @@ static int sqlite3Prepare( sParse.db = db; sParse.pReprepare = pReprepare; assert( ppStmt && *ppStmt==0 ); - if( db->mallocFailed ) sqlite3ErrorMsg(&sParse, "out of memory"); + if( db->mallocFailed ){ + sqlite3ErrorMsg(&sParse, "out of memory"); + db->errCode = rc = SQLITE_NOMEM; + goto end_prepare; + } assert( sqlite3_mutex_held(db->mutex) ); /* For a long-term use prepared statement avoid the use of |