From: drh Date: Sat, 4 Jul 2015 11:14:20 +0000 (+0000) Subject: Do not preserve the btreeInitPage() results in PRAGMA integrity_check if X-Git-Tag: version-3.8.11~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=72e191ed71d2183d284e7759c812f6dcec2ef990;p=thirdparty%2Fsqlite.git Do not preserve the btreeInitPage() results in PRAGMA integrity_check if there were cell sizing errors because PRAGMA cell_size_check was turned off during the btreeInitPage() call. FossilOrigin-Name: 743bf1f184be316971f2e9c651bcf573bde8654a --- diff --git a/manifest b/manifest index e4c861b73e..786e403a09 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Sync\sup\sMakefile\sclean\stargets\sfor\sFTS5. -D 2015-07-04T00:04:37.262 +C Do\snot\spreserve\sthe\sbtreeInitPage()\sresults\sin\sPRAGMA\sintegrity_check\sif\nthere\swere\scell\ssizing\serrors\sbecause\sPRAGMA\scell_size_check\swas\sturned\soff\nduring\sthe\sbtreeInitPage()\scall. +D 2015-07-04T11:14:20.284 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 017bf0511d1b2dd1db5e16488fbf75a17b526cbc F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -269,7 +269,7 @@ F src/auth.c b56c78ebe40a2110fd361379f7e8162d23f92240 F src/backup.c 4d9134dc988a87838c06056c89c0e8c4700a0452 F src/bitvec.c d1f21d7d91690747881f03940584f4cc548c9d3d F src/btmutex.c 45a968cc85afed9b5e6cf55bf1f42f8d18107f79 -F src/btree.c 7705ce3e17c2b0cb8d4c3d935b269270d3c2a548 +F src/btree.c 740ab30df845f4a2c2bdb731ed191b4b63b2b2eb F src/btree.h 969adc948e89e449220ff0ff724c94bb2a52e9f1 F src/btreeInt.h 2ad754dd4528baa8d0946a593cc373b890bf859e F src/build.c b3f15255d5b16e42dafeaa638fd4f8a47c94ed70 @@ -1364,7 +1364,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 4e515897af97cb3a4158bcc34318992e8dcee77a -R 0ed175228476a5c7601d367e38925a77 -U mistachkin -Z 452e29ca7fd5db2edd7c137285535715 +P 43ead44ef6416d69602e123c3be7a258772837f1 +R a66ab7da98093b47fcf696f0e3baef91 +U drh +Z 85e64a90850a0b5ecb5f23fb7b4db837 diff --git a/manifest.uuid b/manifest.uuid index 1ab45e2737..6c31177c16 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -43ead44ef6416d69602e123c3be7a258772837f1 \ No newline at end of file +743bf1f184be316971f2e9c651bcf573bde8654a \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 30f24e9129..f353e8df1f 100644 --- a/src/btree.c +++ b/src/btree.c @@ -8959,6 +8959,7 @@ static int checkTreePage( const char *saved_zPfx = pCheck->zPfx; int saved_v1 = pCheck->v1; int saved_v2 = pCheck->v2; + u8 savedIsInit; /* Check that the page exists */ @@ -8976,6 +8977,7 @@ static int checkTreePage( /* Clear MemPage.isInit to make sure the corruption detection code in ** btreeInitPage() is executed. */ + savedIsInit = pPage->isInit; pPage->isInit = 0; if( (rc = btreeInitPage(pPage))!=0 ){ assert( rc==SQLITE_CORRUPT ); /* The only possible error from InitPage */ @@ -9168,6 +9170,7 @@ static int checkTreePage( } end_of_check: + if( !doCoverageCheck ) pPage->isInit = savedIsInit; releasePage(pPage); pCheck->zPfx = saved_zPfx; pCheck->v1 = saved_v1;