diff options
Diffstat (limited to 'ext/pdo_sqlite/sqlite/src/prepare.c')
| -rw-r--r-- | ext/pdo_sqlite/sqlite/src/prepare.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ext/pdo_sqlite/sqlite/src/prepare.c b/ext/pdo_sqlite/sqlite/src/prepare.c index a65c566bf8..1abe7f35bb 100644 --- a/ext/pdo_sqlite/sqlite/src/prepare.c +++ b/ext/pdo_sqlite/sqlite/src/prepare.c @@ -537,13 +537,15 @@ int sqlite3Prepare( if( sqlite3SafetyOff(db) ){ rc = SQLITE_MISUSE; } - if( rc==SQLITE_OK ){ - if( saveSqlFlag ){ - sqlite3VdbeSetSql(sParse.pVdbe, zSql, sParse.zTail - zSql); - } - *ppStmt = (sqlite3_stmt*)sParse.pVdbe; - }else if( sParse.pVdbe ){ + + if( saveSqlFlag ){ + sqlite3VdbeSetSql(sParse.pVdbe, zSql, sParse.zTail - zSql); + } + if( rc!=SQLITE_OK || sqlite3MallocFailed() ){ sqlite3_finalize((sqlite3_stmt*)sParse.pVdbe); + assert(!(*ppStmt)); + }else{ + *ppStmt = (sqlite3_stmt*)sParse.pVdbe; } if( zErrMsg ){ |
