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

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
This commit is contained in:
dan
2010-06-03 09:01:11 +00:00
parent 2d37e1cfb9
commit 8e64db2b09
3 changed files with 10 additions and 19 deletions

View File

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