1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-08 03:22:21 +03:00

Fix a crash that can follow a malloc() failure in malloc7.test. (CVS 5042)

FossilOrigin-Name: 85eedad186327a1f0b0983413b833efd41640d0e
This commit is contained in:
danielk1977
2008-04-24 12:36:35 +00:00
parent 36961ed23f
commit d7eb2ed5cd
3 changed files with 10 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
C Ensure\sthat\sit\sis\snot\spossible\sto\sopen\seither\svirtual\stable\sor\sview\scolumns\susing\sthe\sblob\sAPI.\sTicket\s#3078.\s(CVS\s5041) C Fix\sa\scrash\sthat\scan\sfollow\sa\smalloc()\sfailure\sin\smalloc7.test.\s(CVS\s5042)
D 2008-04-24T09:49:55 D 2008-04-24T12:36:35
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in 25b3282a4ac39388632c2fb0e044ff494d490952 F Makefile.in 25b3282a4ac39388632c2fb0e044ff494d490952
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -94,7 +94,7 @@ F src/callback.c 77b302b0d41468dcda78c70e706e5b84577f0fa0
F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131 F src/complete.c 4cf68fd75d60257524cbe74f87351b9848399131
F src/date.c e41ce4513fb0e359dc678d6bddb4ace135fe365d F src/date.c e41ce4513fb0e359dc678d6bddb4ace135fe365d
F src/delete.c e4bd53c46969c9fb05cfbba4abc0c93a923f8072 F src/delete.c e4bd53c46969c9fb05cfbba4abc0c93a923f8072
F src/expr.c 7aecda0fb4f078718281a9b56993677c1f45a399 F src/expr.c d5733edd985926fd94e7d51b3763084f7915e2c3
F src/fault.c 83057e86815d473e526f7df0b0108dfdd022ff23 F src/fault.c 83057e86815d473e526f7df0b0108dfdd022ff23
F src/func.c c9e8c7ff4c45027edee89bde7adbf86a3a3b2afe F src/func.c c9e8c7ff4c45027edee89bde7adbf86a3a3b2afe
F src/hash.c 522a8f5a23cf18fe5845afee7263c5be76c25ca2 F src/hash.c 522a8f5a23cf18fe5845afee7263c5be76c25ca2
@@ -635,7 +635,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P adb4bc5a7dd56e625b20c48a7416f2b3480f4de1 P 6039328fe05aaf9380d545e84dfabccb32a4d8ea
R c0a5af2eeceba3da393758a0d20464af R f4eeaf9013dd9137ee2d4c5947b895d2
U danielk1977 U danielk1977
Z 4057dbaa526fb9661eeca50f7e5178e4 Z 8fa4d85c721391f2bcef9a82f5a12b06

View File

@@ -1 +1 @@
6039328fe05aaf9380d545e84dfabccb32a4d8ea 85eedad186327a1f0b0983413b833efd41640d0e

View File

@@ -12,7 +12,7 @@
** This file contains routines used for analyzing expressions and ** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite. ** 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 "sqliteInt.h"
#include <ctype.h> #include <ctype.h>
@@ -2116,7 +2116,8 @@ void sqlite3ExprHardCopy(Parse *pParse, int iReg, int nReg){
v = pParse->pVdbe; v = pParse->pVdbe;
addr = sqlite3VdbeCurrentAddr(v); addr = sqlite3VdbeCurrentAddr(v);
pOp = sqlite3VdbeGetOp(v, addr-1); 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; pOp->opcode = OP_Copy;
} }
} }