MCPcopy Create free account
hub / github.com/ElementsProject/elements / ConsumeNetAddr

Function ConsumeNetAddr

src/test/fuzz/util.cpp:488–508  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

486}
487
488CNetAddr ConsumeNetAddr(FuzzedDataProvider& fuzzed_data_provider) noexcept
489{
490 const Network network = fuzzed_data_provider.PickValueInArray({Network::NET_IPV4, Network::NET_IPV6, Network::NET_INTERNAL, Network::NET_ONION});
491 CNetAddr net_addr;
492 if (network == Network::NET_IPV4) {
493 in_addr v4_addr = {};
494 v4_addr.s_addr = fuzzed_data_provider.ConsumeIntegral<uint32_t>();
495 net_addr = CNetAddr{v4_addr};
496 } else if (network == Network::NET_IPV6) {
497 if (fuzzed_data_provider.remaining_bytes() >= 16) {
498 in6_addr v6_addr = {};
499 memcpy(v6_addr.s6_addr, fuzzed_data_provider.ConsumeBytes<uint8_t>(16).data(), 16);
500 net_addr = CNetAddr{v6_addr, fuzzed_data_provider.ConsumeIntegral<uint32_t>()};
501 }
502 } else if (network == Network::NET_INTERNAL) {
503 net_addr.SetInternal(fuzzed_data_provider.ConsumeBytesAsString(32));
504 } else if (network == Network::NET_ONION) {
505 net_addr.SetSpecial(fuzzed_data_provider.ConsumeBytesAsString(32));
506 }
507 return net_addr;
508}
509
510FILE* FuzzedFileProvider::open()
511{

Callers 7

FUZZ_TARGET_INITFunction · 0.85
FUZZ_TARGETFunction · 0.85
RandAddrFunction · 0.85
FUZZ_TARGETFunction · 0.85
ConsumeSubNetFunction · 0.85
ConsumeServiceFunction · 0.85
FUZZ_TARGET_INITFunction · 0.85

Calls 6

PickValueInArrayMethod · 0.80
remaining_bytesMethod · 0.80
SetInternalMethod · 0.80
ConsumeBytesAsStringMethod · 0.80
SetSpecialMethod · 0.80
dataMethod · 0.45

Tested by

no test coverage detected