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

Function FUZZ_TARGET_INIT

src/test/fuzz/socks5.cpp:28–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26}
27
28FUZZ_TARGET_INIT(socks5, initialize_socks5)
29{
30 FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
31 ProxyCredentials proxy_credentials;
32 proxy_credentials.username = fuzzed_data_provider.ConsumeRandomLengthString(512);
33 proxy_credentials.password = fuzzed_data_provider.ConsumeRandomLengthString(512);
34 InterruptSocks5(fuzzed_data_provider.ConsumeBool());
35 // Set FUZZED_SOCKET_FAKE_LATENCY=1 to exercise recv timeout code paths. This
36 // will slow down fuzzing.
37 g_socks5_recv_timeout = (fuzzed_data_provider.ConsumeBool() && std::getenv("FUZZED_SOCKET_FAKE_LATENCY") != nullptr) ? 1 : default_socks5_recv_timeout;
38 FuzzedSock fuzzed_sock = ConsumeSock(fuzzed_data_provider);
39 // This Socks5(...) fuzzing harness would have caught CVE-2017-18350 within
40 // a few seconds of fuzzing.
41 (void)Socks5(fuzzed_data_provider.ConsumeRandomLengthString(512),
42 fuzzed_data_provider.ConsumeIntegral<uint16_t>(),
43 fuzzed_data_provider.ConsumeBool() ? &proxy_credentials : nullptr,
44 fuzzed_sock);
45}

Callers

nothing calls this directly

Calls 7

InterruptSocks5Function · 0.85
ConsumeSockFunction · 0.85
Socks5Function · 0.85
ConsumeBoolMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected