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

Fix a case where database corruption may cause an assert() to fail.

FossilOrigin-Name: ba33bb059ed4f4547da2880dbc8bd827c06fae34
This commit is contained in:
dan
2013-02-24 11:50:43 +00:00
parent e0b605917e
commit 9138471141
3 changed files with 10 additions and 8 deletions

View File

@@ -3066,7 +3066,9 @@ int sqlite3BtreeIncrVacuum(Btree *p){
Pgno nFree = get4byte(&pBt->pPage1->aData[36]);
Pgno nFin = finalDbSize(pBt, nOrig, nFree);
if( nFree>0 ){
if( nOrig<nFin ){
rc = SQLITE_CORRUPT_BKPT;
}else if( nFree>0 ){
invalidateAllOverflowCache(pBt);
rc = incrVacuumStep(pBt, nFin, nOrig, 0);
if( rc==SQLITE_OK ){