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

Fix a problem in btree.c that could cause a crash following an OOM.

FossilOrigin-Name: b724aa5889f2e09cf0cbef133a672e6486755104
This commit is contained in:
dan
2013-04-01 14:29:33 +00:00
parent 6c5696381e
commit 71be5c5c87
3 changed files with 14 additions and 13 deletions

View File

@@ -2596,12 +2596,13 @@ static int btreeSwapOutMmap(BtShared *pBt){
if( pPg && pPg->pDbPage->flags & PGHDR_MMAP ){
MemPage *pNew = 0;
rc = getAndInitPage(pBt, pPg->pgno, &pNew, 0);
if( rc==SQLITE_OK && pCsr->iPage==0 ){
pCsr->info.pCell = pNew->aData + (pCsr->info.pCell - pPg->aData);
if( rc==SQLITE_OK ){
if( pCsr->iPage==0 ){
pCsr->info.pCell = pNew->aData + (pCsr->info.pCell - pPg->aData);
}
pCsr->apPage[0] = pNew;
releasePage(pPg);
}
pCsr->apPage[0] = pNew;
releasePage(pPg);
if( rc!=SQLITE_OK ) return rc;
}
}
}