aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-06-03 09:01:11 +0000
committerdan <dan@noemail.net>2010-06-03 09:01:11 +0000
commit8e64db2b09941145bdeba3ef68850960945a34d5 (patch)
tree2804628dd02024fe9310cbecaa9bd9348f1534d9 /src
parent2d37e1cfb90fa6bbabdcd88bb86dbce86c30a13b (diff)
downloadsqlite-8e64db2b09941145bdeba3ef68850960945a34d5.tar.gz
sqlite-8e64db2b09941145bdeba3ef68850960945a34d5.zip
If a malloc fails while allocating a savepoint object at the pager level, do not try to roll that savepoint back later on.
FossilOrigin-Name: 91cb08ffb6332a142542c012b58aa49206ee5704
Diffstat (limited to 'src')
-rw-r--r--src/pager.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pager.c b/src/pager.c
index 416e9ed13..3dbc01f2a 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -5449,7 +5449,6 @@ int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
}
memset(&aNew[nCurrent], 0, (nSavepoint-nCurrent) * sizeof(PagerSavepoint));
pPager->aSavepoint = aNew;
- pPager->nSavepoint = nSavepoint;
/* Populate the PagerSavepoint structures just allocated. */
for(ii=nCurrent; ii<nSavepoint; ii++){
@@ -5467,7 +5466,9 @@ int sqlite3PagerOpenSavepoint(Pager *pPager, int nSavepoint){
if( pagerUseWal(pPager) ){
sqlite3WalSavepoint(pPager->pWal, aNew[ii].aWalData);
}
+ pPager->nSavepoint = ii+1;
}
+ assert( pPager->nSavepoint==nSavepoint );
/* Open the sub-journal, if it is not already opened. */
rc = openSubJournal(pPager);