aboutsummaryrefslogtreecommitdiff
path: root/src/pager.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-03-09 07:38:16 +0000
committerdan <dan@noemail.net>2019-03-09 07:38:16 +0000
commitf7b846e4ed54c7859d022d12cfaa6510dbb1ac28 (patch)
treeb2aa7275788355cf1e547ad08232f21d69301244 /src/pager.c
parent0d86a9bd54483ecce8dfd1b3fe34dd6e359406ab (diff)
parent37f6ffb88734c385aa9afc983678867057d09f20 (diff)
downloadsqlite-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.c6
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