mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
Merge bitcoin/bitcoin#29495: fuzz: add target for local address stuff
25eab52389
fuzz: add target for local addresses (brunoerg) Pull request description: This PR adds fuzz target for local address functions - (`AddLocal`, `RemoveLocal`, `SeenLocal`, `IsLocal`) ACKs for top commit: dergoegge: ACK25eab52389
vasild: ACK25eab52389
Tree-SHA512: 24faaab86dcd8835ba0e2d81fb6322a39a9266c7edf66415dbc4421754054f47efb6e0de4efdc7ea026b0686792658e86a526f7cf27cbc6cf9ed0c4aed376f97
This commit is contained in:
commit
ae4165f7bc
1 changed files with 37 additions and 0 deletions
|
@ -77,3 +77,40 @@ FUZZ_TARGET(net, .init = initialize_net)
|
|||
(void)node.HasPermission(net_permission_flags);
|
||||
(void)node.ConnectedThroughNetwork();
|
||||
}
|
||||
|
||||
FUZZ_TARGET(local_address, .init = initialize_net)
|
||||
{
|
||||
FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
|
||||
CService service{ConsumeService(fuzzed_data_provider)};
|
||||
CNode node{ConsumeNode(fuzzed_data_provider)};
|
||||
{
|
||||
LOCK(g_maplocalhost_mutex);
|
||||
mapLocalHost.clear();
|
||||
}
|
||||
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 10000) {
|
||||
CallOneOf(
|
||||
fuzzed_data_provider,
|
||||
[&] {
|
||||
service = ConsumeService(fuzzed_data_provider);
|
||||
},
|
||||
[&] {
|
||||
const bool added{AddLocal(service, fuzzed_data_provider.ConsumeIntegralInRange<int>(0, LOCAL_MAX - 1))};
|
||||
if (!added) return;
|
||||
assert(service.IsRoutable());
|
||||
assert(IsLocal(service));
|
||||
assert(SeenLocal(service));
|
||||
},
|
||||
[&] {
|
||||
(void)RemoveLocal(service);
|
||||
},
|
||||
[&] {
|
||||
(void)SeenLocal(service);
|
||||
},
|
||||
[&] {
|
||||
(void)IsLocal(service);
|
||||
},
|
||||
[&] {
|
||||
(void)GetLocalAddress(node);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue