mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-05-31 16:24:48 +02:00
Change CChain::Contains() to take reference
The `CChain::Contains()` method dereferences its input without checking, potentially resulting in nullptr-dereference if invoked with `nullptr`. To avoid this possibility, its input is changed to a reference instead. Call sites are adapted accoringly, extra nullptr-check is added as needed.
This commit is contained in:
@@ -71,10 +71,9 @@ BOOST_AUTO_TEST_CASE(basic_tests)
|
||||
BOOST_CHECK_EQUAL(chain_2[2], nullptr);
|
||||
|
||||
// Contains: call with contained & non-contained blocks
|
||||
BOOST_CHECK(chain_2.Contains(&genesis));
|
||||
BOOST_CHECK(chain_2.Contains(&bi1));
|
||||
BOOST_CHECK(!chain_0.Contains(&genesis));
|
||||
// BOOST_CHECK(!chain_0.Contains(nullptr)); // fail with memory access violation
|
||||
BOOST_CHECK(chain_2.Contains(genesis));
|
||||
BOOST_CHECK(chain_2.Contains(bi1));
|
||||
BOOST_CHECK(!chain_0.Contains(genesis));
|
||||
|
||||
// Call with non-tip & tip blocks
|
||||
BOOST_CHECK_EQUAL(chain_2.Next(&genesis), &bi1);
|
||||
|
||||
Reference in New Issue
Block a user