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

Avoid attempting to call savepoint related methods on deleted sqlite3_vtab objects. Fix for [48f299634a].

FossilOrigin-Name: 3565fcf898960d7a23d23a2f363b039b2e29447b
This commit is contained in:
dan
2011-10-29 11:43:04 +00:00
parent 81bdd6db54
commit 341cadee54
4 changed files with 72 additions and 10 deletions

View File

@@ -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);
}
}
}