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:
Hao Xu
2026-07-26 19:05:17 +08:00
parent b33a7fcd7b
commit d29b22d078
2 changed files with 3 additions and 1 deletions

View File

@@ -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,

View File

@@ -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;