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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 delta 21850 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 PLeBxFO1_u)^Q-<3qD3t} -- 2.47.2