1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Fix a crash that can occur if an error happens in a virtual table xSync() function. (CVS 3860)

FossilOrigin-Name: d1afdd8c9c756409275c116e662fc1e04bbe829e
This commit is contained in:
danielk1977
2007-04-19 14:28:08 +00:00
parent 5f7b5bf419
commit 4ea0d2e528
3 changed files with 10 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
C Comment\schanges\sin\sthe\sioerr\stests.\s\sNo\schanges\sto\scode.\s(CVS\s3859) C Fix\sa\scrash\sthat\scan\soccur\sif\san\serror\shappens\sin\sa\svirtual\stable\sxSync()\sfunction.\s(CVS\s3860)
D 2007-04-19T12:30:54 D 2007-04-19T14:28:09
F Makefile.in 8cab54f7c9f5af8f22fd97ddf1ecfd1e1860de62 F Makefile.in 8cab54f7c9f5af8f22fd97ddf1ecfd1e1860de62
F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -131,7 +131,7 @@ F src/vdbeapi.c 1fca7ff056d03f131caa6b1296bb221da65ed7f4
F src/vdbeaux.c ef59545f53f90394283f2fd003375d3ebbf0bd6e F src/vdbeaux.c ef59545f53f90394283f2fd003375d3ebbf0bd6e
F src/vdbefifo.c 3ca8049c561d5d67cbcb94dc909ae9bb68c0bf8f F src/vdbefifo.c 3ca8049c561d5d67cbcb94dc909ae9bb68c0bf8f
F src/vdbemem.c 981a113405bd9b80aeb71fe246a2f01708e8a8f7 F src/vdbemem.c 981a113405bd9b80aeb71fe246a2f01708e8a8f7
F src/vtab.c d80f61bb4756b1c9cebcd185879e88a88e22b006 F src/vtab.c 6aad2b5cb117142be42047abb85919b98ef187c4
F src/where.c fce0dad6b230eb7ea844e8b8667c074d07e3fdd5 F src/where.c fce0dad6b230eb7ea844e8b8667c074d07e3fdd5
F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42 F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
@@ -459,7 +459,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
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 8795d11c3c5bb39d34bc5194621ce97097a320e7 P b7ed0e1e88a019c830f56abb14658104a30a1c43
R 881cddcd5870bcd2cccfc66d1e72ef6f R 5c592b147b197caa08e0e4cc017292eb
U drh U danielk1977
Z 698c62f2beadbeaf34d69daba13ce366 Z 2c6cb30f9dd37ebc0e4aab421a093117

View File

@@ -1 +1 @@
b7ed0e1e88a019c830f56abb14658104a30a1c43 d1afdd8c9c756409275c116e662fc1e04bbe829e

View File

@@ -11,7 +11,7 @@
************************************************************************* *************************************************************************
** This file contains code used to help implement virtual tables. ** This file contains code used to help implement virtual tables.
** **
** $Id: vtab.c,v 1.43 2007/04/19 00:24:35 drh Exp $ ** $Id: vtab.c,v 1.44 2007/04/19 14:28:09 danielk1977 Exp $
*/ */
#ifndef SQLITE_OMIT_VIRTUALTABLE #ifndef SQLITE_OMIT_VIRTUALTABLE
#include "sqliteInt.h" #include "sqliteInt.h"
@@ -533,7 +533,7 @@ int sqlite3VtabCallDestroy(sqlite3 *db, int iDb, const char *zTab)
*/ */
static void callFinaliser(sqlite3 *db, int offset){ static void callFinaliser(sqlite3 *db, int offset){
int i; int i;
for(i=0; i<db->nVTrans && db->aVTrans[i]; i++){ for(i=0; i<db->nVTrans && db->aVTrans && db->aVTrans[i]; i++){
sqlite3_vtab *pVtab = db->aVTrans[i]; sqlite3_vtab *pVtab = db->aVTrans[i];
int (*x)(sqlite3_vtab *); int (*x)(sqlite3_vtab *);
x = *(int (**)(sqlite3_vtab *))((char *)pVtab->pModule + offset); x = *(int (**)(sqlite3_vtab *))((char *)pVtab->pModule + offset);