aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2011-10-29 11:43:04 +0000
committerdan <dan@noemail.net>2011-10-29 11:43:04 +0000
commit341cadee5430fec2e698936b9707a18d2ba960ec (patch)
treee59a16bc16e35fbda3a7c0a94185ccc8b1308b47 /src
parent81bdd6db5445329a33eed0da907bb2e4fe9f079a (diff)
downloadsqlite-341cadee5430fec2e698936b9707a18d2ba960ec.tar.gz
sqlite-341cadee5430fec2e698936b9707a18d2ba960ec.zip
Avoid attempting to call savepoint related methods on deleted sqlite3_vtab objects. Fix for [48f299634a].
FossilOrigin-Name: 3565fcf898960d7a23d23a2f363b039b2e29447b
Diffstat (limited to 'src')
-rw-r--r--src/vtab.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vtab.c b/src/vtab.c
index 223ef4e7b..8119cb551 100644
--- a/src/vtab.c
+++ b/src/vtab.c
@@ -891,7 +891,7 @@ int sqlite3VtabSavepoint(sqlite3 *db, int op, int iSavepoint){
for(i=0; rc==SQLITE_OK && i<db->nVTrans; i++){
VTable *pVTab = db->aVTrans[i];
const sqlite3_module *pMod = pVTab->pMod->pModule;
- if( pMod->iVersion>=2 ){
+ if( pVTab->pVtab && pMod->iVersion>=2 ){
int (*xMethod)(sqlite3_vtab *, int);
switch( op ){
case SAVEPOINT_BEGIN:
@@ -906,7 +906,7 @@ int sqlite3VtabSavepoint(sqlite3 *db, int op, int iSavepoint){
break;
}
if( xMethod && pVTab->iSavepoint>iSavepoint ){
- rc = xMethod(db->aVTrans[i]->pVtab, iSavepoint);
+ rc = xMethod(pVTab->pVtab, iSavepoint);
}
}
}