From aff0fd483c24ea83377824dbcbd17fad374594b2 Mon Sep 17 00:00:00 2001 From: drh Date: Wed, 6 Mar 2019 14:08:41 +0000 Subject: [PATCH] Add an "|| CORRUPT_DB" term to an assert() that might be false if the database is corrupt. Also add a branch to have sqlite3PagerMovepage() return SQLITE_CORRUPT in that case. FossilOrigin-Name: b0d5cf40bba34e459caa7480bc84a1d75496c2ab52029f4bb0a31f2d9369a8ee --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/pager.c | 6 +++++- test/fuzzdata8.db | Bin 1021952 -> 1031168 bytes 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 95aabe0a74..35badc253c 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sa\spotential\s32-bit\sinteger\soverflow\sin\sthe\s"showdb"\sutility\sprogram\swhen\nit\sis\strying\sto\sinterpret\sa\scorrupt\sdatabase\sfile. -D 2019-03-05T23:49:17.602 +C Add\san\s"||\sCORRUPT_DB"\sterm\sto\san\sassert()\sthat\smight\sbe\sfalse\sif\sthe\sdatabase\nis\scorrupt.\s\sAlso\sadd\sa\sbranch\sto\shave\ssqlite3PagerMovepage()\sreturn\nSQLITE_CORRUPT\sin\sthat\scase. +D 2019-03-06T14:08:41.132 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F Makefile.in 1ad7263f38329c0ecea543c80f30af839ee714ea77fc391bf1a3fbb919a5b6b5 @@ -502,7 +502,7 @@ F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586 F src/os_unix.c 2b9604eb5c12f40a0613e832b6267f5814f84479d570d482ba6f98d7affa7c1c F src/os_win.c 85d9e532d0444ab6c16d7431490c2e279e282aa0917b0e988996b1ae0de5c5a0 F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a -F src/pager.c 5ff85a1dafdbbc3d27e21dbb52ac02066507b1e2d7da4cd4961408eed2cce23a +F src/pager.c 422fd8cfa59fb9173eff36a95878904a0eeb0dcc62ba49350acc8b1e51c4dc7b F src/pager.h 217921e81eb5fe455caa5cda96061959706bcdd29ddb57166198645ef7822ac3 F src/parse.y 741a270b7f2f85bc5d026d06fb5a9ccba5335304ff2831e1cb44b36cd0da6006 F src/pcache.c 696a01f1a6370c1b50a09c15972bc3bee3333f8fcd1f2da8e9a76b1b062c59ee @@ -993,7 +993,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db 7b04dfb4e2e28f7174d0b83920ee564ebb5261e23f0b843c383a7868788a300c -F test/fuzzdata8.db bcdd2175b8876c3679aa1c00874a9f69368f464e498f800d3917bd74a0563127 +F test/fuzzdata8.db f6906d0e04c050e661272aba5f82cf35eb232e25493850bba5a5f339dddb7327 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1806,7 +1806,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 38d2e510cdedf38153466b161c0842b1604aef7b5589c51f628ae7cbb6a8722a -R 5f08c12dd4cf8ba7c214856356c2450a +P 3803e750384ec37091b0a6c350f8ef67720e316fd6f74c95e3c5f231c4a01ceb +R 5ce5e7502772fd8fb0367a42a020f65d U drh -Z fa7715e4b91d1f3064235b4ac30911e1 +Z e5a870506571dc7c7e8d899a4f9fe623 diff --git a/manifest.uuid b/manifest.uuid index 3ba75e5ce1..84f7877ee1 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -3803e750384ec37091b0a6c350f8ef67720e316fd6f74c95e3c5f231c4a01ceb \ No newline at end of file +b0d5cf40bba34e459caa7480bc84a1d75496c2ab52029f4bb0a31f2d9369a8ee \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index 9dd3dfe007..24c7a2d569 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 diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 230960b9d9e2b144b800e203900d61bce23e5e56..7f0897dec5d8e0682caf7b3d5505e4c12d82d870 100644 GIT binary patch delta 23668 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 RTIN0l7$0H3;XMD<{{bG#T+RRh -- 2.47.3