mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
fuzz: reset connman state in p2p targets
Clear ConnmanTestMsg state at the start of each input in cmpctblock and p2p_handshake so sticky CConnman state does not leak between fuzz inputs.
This commit is contained in:
@@ -167,6 +167,8 @@ FUZZ_TARGET(cmpctblock, .init = initialize_cmpctblock)
|
||||
FakeSteadyClock steady_clock;
|
||||
|
||||
auto setup = g_setup;
|
||||
auto& connman = *static_cast<ConnmanTestMsg*>(setup->m_node.connman.get());
|
||||
connman.Reset();
|
||||
auto& mempool = *setup->m_node.mempool;
|
||||
auto& chainman = static_cast<TestChainstateManager&>(*setup->m_node.chainman);
|
||||
chainman.ResetIbd();
|
||||
@@ -174,7 +176,6 @@ FUZZ_TARGET(cmpctblock, .init = initialize_cmpctblock)
|
||||
const size_t initial_index_size{WITH_LOCK(chainman.GetMutex(), return chainman.BlockIndex().size())};
|
||||
|
||||
AddrMan addrman{*setup->m_node.netgroupman, /*deterministic=*/true, /*consistency_check_ratio=*/0};
|
||||
auto& connman = *static_cast<ConnmanTestMsg*>(setup->m_node.connman.get());
|
||||
auto peerman = PeerManager::make(connman, addrman,
|
||||
/*banman=*/nullptr, chainman,
|
||||
mempool, *setup->m_node.warnings,
|
||||
|
||||
@@ -40,6 +40,7 @@ FUZZ_TARGET(p2p_handshake, .init = ::initialize)
|
||||
|
||||
auto& node{g_setup->m_node};
|
||||
auto& connman{static_cast<ConnmanTestMsg&>(*node.connman)};
|
||||
connman.Reset();
|
||||
auto& chainman{static_cast<TestChainstateManager&>(*node.chainman)};
|
||||
FakeNodeClock clock{1610000000s}; // any time to successfully reset ibd
|
||||
FakeSteadyClock steady_clock;
|
||||
|
||||
Reference in New Issue
Block a user