|
12 | 12 | #include <string>
|
13 | 13 | #include <vector>
|
14 | 14 |
|
15 |
| -namespace { |
16 |
| -FuzzedDataProvider* fuzzed_data_provider_ptr = nullptr; |
17 |
| - |
18 |
| -std::vector<CNetAddr> fuzzed_dns_lookup_function(const std::string& name, bool allow_lookup) |
19 |
| -{ |
20 |
| - std::vector<CNetAddr> resolved_addresses; |
21 |
| - while (fuzzed_data_provider_ptr->ConsumeBool()) { |
22 |
| - resolved_addresses.push_back(ConsumeNetAddr(*fuzzed_data_provider_ptr)); |
23 |
| - } |
24 |
| - return resolved_addresses; |
25 |
| -} |
26 |
| -} // namespace |
27 |
| - |
28 | 15 | FUZZ_TARGET(netbase_dns_lookup)
|
29 | 16 | {
|
30 | 17 | FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
|
31 |
| - fuzzed_data_provider_ptr = &fuzzed_data_provider; |
32 | 18 | const std::string name = fuzzed_data_provider.ConsumeRandomLengthString(512);
|
33 | 19 | const unsigned int max_results = fuzzed_data_provider.ConsumeIntegral<unsigned int>();
|
34 | 20 | const bool allow_lookup = fuzzed_data_provider.ConsumeBool();
|
35 | 21 | const int default_port = fuzzed_data_provider.ConsumeIntegral<int>();
|
| 22 | + |
| 23 | + auto fuzzed_dns_lookup_function = [&](const std::string&, bool) { |
| 24 | + std::vector<CNetAddr> resolved_addresses; |
| 25 | + while (fuzzed_data_provider.ConsumeBool()) { |
| 26 | + resolved_addresses.push_back(ConsumeNetAddr(fuzzed_data_provider)); |
| 27 | + } |
| 28 | + return resolved_addresses; |
| 29 | + }; |
| 30 | + |
36 | 31 | {
|
37 | 32 | std::vector<CNetAddr> resolved_addresses;
|
38 | 33 | if (LookupHost(name, resolved_addresses, max_results, allow_lookup, fuzzed_dns_lookup_function)) {
|
@@ -73,5 +68,4 @@ FUZZ_TARGET(netbase_dns_lookup)
|
73 | 68 | assert(resolved_subnet.IsValid());
|
74 | 69 | }
|
75 | 70 | }
|
76 |
| - fuzzed_data_provider_ptr = nullptr; |
77 | 71 | }
|
0 commit comments