From 42925d1f1a9fb1b220d6e5044a0143e3c5631b28 Mon Sep 17 00:00:00 2001 From: drh Date: Tue, 7 Jan 2020 13:32:15 +0000 Subject: [PATCH] Add an "|| CORRUPT_DB" term to an assert() statement inside of btree. FossilOrigin-Name: 03c1d75ddc063469fc856114595bd12d21759fe0979ce1ba1cf52e48e6b0d4a1 --- manifest | 16 ++++++++-------- manifest.uuid | 2 +- src/btree.c | 4 ++-- test/fuzzdata8.db | Bin 1728512 -> 1738752 bytes 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/manifest b/manifest index 10bf24b126..c62afb8435 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\san\sinstance\sof\san\sundefined\sbehaviour\s(a\sleft-shift\sof\sa\s64-bit\sunsigned\sinteger\sby\sa\svalue\sgreater\sthan\s64)\sthat\scould\soccur\sin\sfts3. -D 2020-01-07T09:06:43.774 +C Add\san\s"||\sCORRUPT_DB"\sterm\sto\san\sassert()\sstatement\sinside\sof\sbtree. +D 2020-01-07T13:32:15.559 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -469,7 +469,7 @@ F src/auth.c a3d5bfdba83d25abed1013a8c7a5f204e2e29b0c25242a56bc02bb0c07bf1e06 F src/backup.c f70077d40c08b7787bfe934e4d1da8030cb0cc57d46b345fba2294b7d1be23ab F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6 -F src/btree.c ac383ca583c07a5cca21c0d1bb692451d048332d231dd0e0ac9f5c46315674b0 +F src/btree.c 68dc49062f5ee261b971157e8db2ca4e290555c872c978eadc1b5441a9c58360 F src/btree.h 6111552f19ed7a40f029cf4b33badc6fef9880314fffd80a945f0b7f43ab7471 F src/btreeInt.h 6794084fad08c9750b45145743c0e3e5c27c94dee89f26dd8df7073314934fd2 F src/build.c 67b1a8d3ac700747687dbdc49ded847a3c17fef450a8c919ac0399b44cbd4215 @@ -1018,7 +1018,7 @@ F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e4 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7 F test/fuzzdata7.db e7a86fd83dda151d160445d542e32e5c6019c541b3a74c2a525b6ac640639711 -F test/fuzzdata8.db f747246bddfff9ca89e59e5d3eda5490fabaccbf3cf2385cad47ee9f82f20e43 +F test/fuzzdata8.db 7816165a0e5d5deec593a519cd1f527a2a9efd0a3f7d00c232d8e9f29a2c0acd F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14 F test/fuzzerfault.test 8792cd77fd5bce765b05d0c8e01b9edcf8af8536 @@ -1853,7 +1853,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 e1154c39ba0f8caec70d330e6d5bec745c93ec9a7eafedb3e3730fadc8b8277c -R ae7ece5100c9bad1eb3afea8cc48fa0a -U dan -Z c119ee3723dd037b7a23ed53e0fbca66 +P e1f12978b53683114ab0ef0e84a14dd4fabc72750b214aac19cd9da22a582a27 +R 07b7096e26b431d07883fc9cbfc33796 +U drh +Z a639f54f6a0a3a7af89209b4839be8ff diff --git a/manifest.uuid b/manifest.uuid index 65d89221ba..ca4967f9f2 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e1f12978b53683114ab0ef0e84a14dd4fabc72750b214aac19cd9da22a582a27 \ No newline at end of file +03c1d75ddc063469fc856114595bd12d21759fe0979ce1ba1cf52e48e6b0d4a1 \ No newline at end of file diff --git a/src/btree.c b/src/btree.c index 225514dc78..552fc6a321 100644 --- a/src/btree.c +++ b/src/btree.c @@ -2137,11 +2137,11 @@ static MemPage *btreePageLookup(BtShared *pBt, Pgno pgno){ ** error, return ((unsigned int)-1). */ static Pgno btreePagecount(BtShared *pBt){ - return pBt->nPage; + assert( (pBt->nPage & 0x80000000)==0 || CORRUPT_DB ); + return pBt->nPage & 0x7fffffff; } u32 sqlite3BtreeLastPage(Btree *p){ assert( sqlite3BtreeHoldsMutex(p) ); - assert( ((p->pBt->nPage)&0x80000000)==0 ); return btreePagecount(p->pBt); } diff --git a/test/fuzzdata8.db b/test/fuzzdata8.db index 1a4c09c325abb9da0665e36b6a8f0b4de630cda1..860f0d8fd500616319343b484c68063bdd0a408b 100644 GIT binary patch delta 23963 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