From: drh Date: Sun, 20 Feb 2011 03:27:52 +0000 (+0000) Subject: Do not raise an SQLITE_CORRUPT error in Recoverymode if the database size X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7972768979b0159ff5d848be0f27fb1b2c431fdb;p=thirdparty%2Fsqlite.git Do not raise an SQLITE_CORRUPT error in Recoverymode if the database size in the header is larger than the physical file size. This is a cherrypick of checkin [114640d920e16c8] FossilOrigin-Name: 7701b07759d63537408a68bac85cb1b8b27160b7 --- diff --git a/manifest b/manifest index 4b19f09aea..c83c67403a 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,8 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -C Backport\sthe\ssqlite3.h\sgenerator\sfix\sso\sthat\sit\sworks\swith\snewer\sversions\nof\sFossil.\s\sSee\s[3513bf6ee090d9b]\sfor\sthe\soriginal. -D 2011-02-20T03:22:51.510 +C Do\snot\sraise\san\sSQLITE_CORRUPT\serror\sin\sRecoverymode\sif\sthe\sdatabase\ssize\nin\sthe\sheader\sis\slarger\sthan\sthe\sphysical\sfile\ssize.\s\sThis\sis\sa\scherrypick\nof\scheckin\s[114640d920e16c8] +D 2011-02-20T03:27:52.324 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 4547616ad2286053af6ccccefa242dc925e49bf0 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -122,7 +122,7 @@ F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34 F src/backup.c d5b0137bc20327af08c14772227cc35134839c30 F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef F src/btmutex.c 96a12f50f7a17475155971a241d85ec5171573ff -F src/btree.c b70bf1dc563ec532851715ce51aa1ea0c0c592b9 +F src/btree.c a27c3b41082889fc258278ba501ff2594dda2a41 F src/btree.h 10f9296bf4edf034f5adce921b7b4383a56a1c90 F src/btreeInt.h c424f2f131cc61ddf130f9bd736b3df12c8a51f0 F src/build.c 00a327120d81ace6267e714ae8010c997d55de5d @@ -897,14 +897,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P e6e540ab7779f5363bf0c93a9e1482b0f31782ce -R fe1521f9ffa5f711895347a15e320bc3 +P 29597a71d0848cd5faeb68b606a9127910c8dc57 +R 4765ab892066a2cf596b52ac188daaa7 U drh -Z 7b3d563c815de0818c91d3314970b550 +Z 0fd913631bd65c1d6b88eece64aed780 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) -iD8DBQFNYIkOoxKgR168RlERAnuqAJ9SnzN8KWSap9MM0SrErbejIcEESQCfWvKk -tS4dB1/H9sl4h03cKtPMKGk= -=EK/3 +iD8DBQFNYIo8oxKgR168RlERAtxOAJ0W2UlkzgKSsQgJHB8/MuaurrnAOACeIEqH +2d5x+c+4cCHEyAOLiV5KRVk= +=mpQI -----END PGP SIGNATURE----- diff --git a/manifest.uuid b/manifest.uuid index 055cab8199..f75cc684ef 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -29597a71d0848cd5faeb68b606a9127910c8dc57 \ No newline at end of file +7701b07759d63537408a68bac85cb1b8b27160b7 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index fcc8deb922..bec19e315f 100644 --- a/src/btree.c +++ b/src/btree.c @@ -2386,7 +2386,7 @@ static int lockBtree(BtShared *pBt){ pageSize-usableSize); return rc; } - if( nPageHeader>nPageFile ){ + if( (pBt->db->flags & SQLITE_RecoveryMode)==0 && nPageHeader>nPageFile ){ rc = SQLITE_CORRUPT_BKPT; goto page1_init_failed; }