]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix a faulty assert() statement in balance_nonroot() - the assert() should use
authordrh <drh@noemail.net>
Mon, 25 Mar 2019 18:44:08 +0000 (18:44 +0000)
committerdrh <drh@noemail.net>
Mon, 25 Mar 2019 18:44:08 +0000 (18:44 +0000)
get2byteNotZero() instead of get2byte() for the corner case where the
number cells is zero on a 65536-byte page.

FossilOrigin-Name: bcbe7d96df3c9515f679ccf671ca9ba89d081b53501495d4218eb5126196838b

manifest
manifest.uuid
src/btree.c
test/fuzzdata7.db

index cd7490c4fc8b9e847a548841e793310191c5d53a..7acfde7c8859cbd0ec49ccebc2764f5e04cc1858 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improvements\sto\sthe\shelp\stext\sin\sthe\sCLI.
-D 2019-03-25T15:09:19.966
+C Fix\sa\sfaulty\sassert()\sstatement\sin\sbalance_nonroot()\s-\sthe\sassert()\sshould\suse\nget2byteNotZero()\sinstead\sof\sget2byte()\sfor\sthe\scorner\scase\swhere\sthe\nnumber\scells\sis\szero\son\sa\s65536-byte\spage.
+D 2019-03-25T18:44:08.409
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -457,7 +457,7 @@ F src/auth.c 0fac71038875693a937e506bceb492c5f136dd7b1249fbd4ae70b4e8da14f9df
 F src/backup.c 78d3cecfbe28230a3a9a1793e2ead609f469be43e8f486ca996006be551857ab
 F src/bitvec.c 17ea48eff8ba979f1f5b04cc484c7bb2be632f33
 F src/btmutex.c 8acc2f464ee76324bf13310df5692a262b801808984c1b79defb2503bbafadb6
-F src/btree.c e967c83e699217df1227d2fff8ecf602e031001b6b4993b61ff8a30f1b248615
+F src/btree.c 482c81f4acd70f71e32ef6755255a52025256fc77bd5a990bcea4661cb3f132c
 F src/btree.h 63b94fb38ce571c15eb6a3661815561b501d23d5948b2d1e951fbd7a2d04e8d3
 F src/btreeInt.h 6111c15868b90669f79081039d19e7ea8674013f907710baa3c814dc3f8bfd3f
 F src/build.c 0f88a2f52c80da71ceb6e95831622aa4aeda758b69011bde9eb87840c8d38672
@@ -993,7 +993,7 @@ F test/fuzzdata3.db c6586d3e3cef0fbc18108f9bb649aa77bfc38aba
 F test/fuzzdata4.db b502c7d5498261715812dd8b3c2005bad08b3a26e6489414bd13926cd3e42ed2
 F test/fuzzdata5.db e35f64af17ec48926481cfaf3b3855e436bd40d1cfe2d59a9474cb4b748a52a5
 F test/fuzzdata6.db 92a80e4afc172c24f662a10a612d188fb272de4a9bd19e017927c95f737de6d7
-F test/fuzzdata7.db 7b04dfb4e2e28f7174d0b83920ee564ebb5261e23f0b843c383a7868788a300c
+F test/fuzzdata7.db faa2d2aea6e49b890dacc791543efe08a3a362ac96c10e830e34fd7fd2999dfb
 F test/fuzzdata8.db 4451d0dd309e51b38e48a768364dab735b5d9c29bbd2bde2e41fc795906a3a76
 F test/fuzzer1.test 3d4c4b7e547aba5e5511a2991e3e3d07166cfbb8
 F test/fuzzer2.test a85ef814ce071293bce1ad8dffa217cbbaad4c14
@@ -1807,7 +1807,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 f11c89595dc65f89be6df62830c8cddd3933acfd4baaecd348ecd99e71db5831
-R 513e05fdb845e2ba170e4e37ddb59ef5
+P 919fec91dac4cb0d5f67404d4f47a65f353d752f5da0aa7b071bf3caf19e0522
+R 1714f3a7a57727d2821b8f5cc5317f8e
 U drh
-Z 1162f3d32ce9f5ee6d7d932b24ca06a2
+Z d6860433112349863d7e6df3990f52f5
index 3f34c5ba16a8636b0437770f43e34cef35a1364f..0bfe22f3590df1fe09d5e9376cfff155b188bc11 100644 (file)
@@ -1 +1 @@
-919fec91dac4cb0d5f67404d4f47a65f353d752f5da0aa7b071bf3caf19e0522
\ No newline at end of file
+bcbe7d96df3c9515f679ccf671ca9ba89d081b53501495d4218eb5126196838b
\ No newline at end of file
index fe3fcbeb55527386d25132fa89a25b86ac83c54f..3ea87cb07a50436131aa9f9462106637fda5bb41 100644 (file)
@@ -8166,7 +8166,8 @@ static int balance_nonroot(
     rc = defragmentPage(apNew[0], -1);
     testcase( rc!=SQLITE_OK );
     assert( apNew[0]->nFree == 
-        (get2byte(&apNew[0]->aData[5])-apNew[0]->cellOffset-apNew[0]->nCell*2)
+        (get2byteNotZero(&apNew[0]->aData[5]) - apNew[0]->cellOffset
+          - apNew[0]->nCell*2)
       || rc!=SQLITE_OK
     );
     copyNodeContent(apNew[0], pParent, &rc);
index c3eadb1865a8d30157bd388a27377bd169faa74d..1d571c03b3f12c5e0bd031f6467dee585f8b5628 100644 (file)
Binary files a/test/fuzzdata7.db and b/test/fuzzdata7.db differ