-C Avoid\sa\spotential\snull-pointer\sdereference\sfollowing\san\sOOM.
-D 2016-08-24T00:25:27.492
+C The\sprevious\sOOM\sfix\swas\sbad.\s\sBack\sit\sout\sand\sreplace\sit\swith\sa\sbetter\sone.
+D 2016-08-24T00:51:48.043
F Makefile.in cfd8fb987cd7a6af046daa87daa146d5aad0e088
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc d66d0395c38571aab3804f8db0fa20707ae4609a
F src/date.c 95c9a8d00767e7221a8e9a31f4e913fc8029bf6b
F src/dbstat.c 19ee7a4e89979d4df8e44cfac7a8f905ec89b77d
F src/delete.c 76c084f0265f4a3cd1ecf17eee112a94f1ccbc05
-F src/expr.c be8772ac5019400096eea179c1bfd5acc420bde9
+F src/expr.c f433feeeaa43d52a4e029066a1af02bac9ed5f1a
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c e2be0968c1adc679c87e467aa5b4f167588f38a8
F src/func.c 29cc9acb170ec1387b9f63eb52cd85f8de96c771
F src/walker.c 2d2cc7fb0f320f7f415215d7247f3c584141ac09
F src/where.c c7cdfd54f383090bb801cdd50d36de1a24684bb2
F src/whereInt.h 14dd243e13b81cbb0a66063d38b70f93a7d6e613
-F src/wherecode.c 0c790c422ea5ecb6c83d6a78f2c4ebc036eea90e
+F src/wherecode.c 0c99e2e97c23ec0b0d64071b3590d3a5e6091a96
F src/whereexpr.c aa54bf11adf6bc7e52f56281f436ab5fd421ce16
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 838c50a5bf46fd0340839d577fa28ba02b4f2034
-R 960a362fd9424a163c5a4d069783cdea
+P 25f6ed8de4df9c9890d4a352a6d11084433e82ea
+R 19a9e7a69bf070f3aad327c389d879a1
U drh
-Z 2276dcfeffa9ab927fd9ef765fca4810
+Z c33731cf7b01c5dd25f3f1c4114950f7
-25f6ed8de4df9c9890d4a352a6d11084433e82ea
\ No newline at end of file
+1e3bc3698a4b779e6af8e3c727929c4dbddf3edb
\ No newline at end of file
assert( pTab->pSelect==0 ); /* FROM clause is not a view */
if( IsVirtual(pTab) ) return 0; /* FROM clause not a virtual table */
pEList = p->pEList;
+ assert( pEList!=0 );
/* All SELECT results must be columns. */
for(i=0; i<pEList->nExpr; i++){
int mustBeUnique; /* True if RHS must be unique */
Vdbe *v = sqlite3GetVdbe(pParse); /* Virtual machine being coded */
- if( pParse->db->mallocFailed ) return IN_INDEX_NOOP;
assert( pX->op==TK_IN );
mustBeUnique = (inFlags & IN_INDEX_LOOP)!=0;
sqlite3VdbeAddOp2(v, OP_Null, 0, iReg);
#ifndef SQLITE_OMIT_SUBQUERY
}else{
- int eType;
+ int eType = IN_INDEX_NOOP;
int iTab;
struct InLoop *pIn;
WhereLoop *pLoop = pLevel->pWLoop;
pLhs = sqlite3ExprListAppend(pParse, pLhs, pNewLhs);
}
}
-
- pX->x.pSelect->pEList = pRhs;
- pX->pLeft->x.pList = pLhs;
-
- eType = sqlite3FindInIndex(pParse, pX, IN_INDEX_LOOP, 0, aiMap);
- pX->x.pSelect->pEList = pOrigRhs;
- pX->pLeft->x.pList = pOrigLhs;
+ if( !db->mallocFailed ){
+ pX->x.pSelect->pEList = pRhs;
+ pX->pLeft->x.pList = pLhs;
+ eType = sqlite3FindInIndex(pParse, pX, IN_INDEX_LOOP, 0, aiMap);
+ pX->x.pSelect->pEList = pOrigRhs;
+ pX->pLeft->x.pList = pOrigLhs;
+ }
sqlite3ExprListDelete(pParse->db, pLhs);
sqlite3ExprListDelete(pParse->db, pRhs);
}