Skip to content

Commit

Permalink
Merge bitcoin/bitcoin#29495: fuzz: add target for local address stuff
Browse files Browse the repository at this point in the history
25eab52 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:
    ACK 25eab52
  vasild:
    ACK 25eab52

Tree-SHA512: 24faaab86dcd8835ba0e2d81fb6322a39a9266c7edf66415dbc4421754054f47efb6e0de4efdc7ea026b0686792658e86a526f7cf27cbc6cf9ed0c4aed376f97
  • Loading branch information
fanquake committed Mar 1, 2024
2 parents d72cf82 + 25eab52 commit ae4165f
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/test/fuzz/net.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});
}
}

0 comments on commit ae4165f

Please sign in to comment.