diff options
author | dan <dan@noemail.net> | 2019-03-09 07:38:16 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-03-09 07:38:16 +0000 |
commit | f7b846e4ed54c7859d022d12cfaa6510dbb1ac28 (patch) | |
tree | b2aa7275788355cf1e547ad08232f21d69301244 /src/pager.c | |
parent | 0d86a9bd54483ecce8dfd1b3fe34dd6e359406ab (diff) | |
parent | 37f6ffb88734c385aa9afc983678867057d09f20 (diff) | |
download | sqlite-f7b846e4ed54c7859d022d12cfaa6510dbb1ac28.tar.gz sqlite-f7b846e4ed54c7859d022d12cfaa6510dbb1ac28.zip |
Merge latest trunk changes into this branch.
FossilOrigin-Name: 53ea550ce759ae4683bcf0ae3af655bfe04f85db70f74edee6bcab56d83bb041
Diffstat (limited to 'src/pager.c')
-rw-r--r-- | src/pager.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pager.c b/src/pager.c index 9dd3dfe00..24c7a2d56 100644 --- a/src/pager.c +++ b/src/pager.c @@ -7177,8 +7177,12 @@ int sqlite3PagerMovepage(Pager *pPager, DbPage *pPg, Pgno pgno, int isCommit){ */ pPg->flags &= ~PGHDR_NEED_SYNC; pPgOld = sqlite3PagerLookup(pPager, pgno); - assert( !pPgOld || pPgOld->nRef==1 ); + assert( !pPgOld || pPgOld->nRef==1 || CORRUPT_DB ); if( pPgOld ){ + if( pPgOld->nRef>1 ){ + sqlite3PagerUnrefNotNull(pPgOld); + return SQLITE_CORRUPT_BKPT; + } pPg->flags |= (pPgOld->flags&PGHDR_NEED_SYNC); if( pPager->tempFile ){ /* Do not discard pages from an in-memory database since we might |