// Copyright (c) 2020 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include #include #include #include #include #include #include FUZZ_TARGET(addrdb) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); // The point of this code is to exercise all CBanEntry constructors. const CBanEntry ban_entry = [&] { switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 2)) { case 0: return CBanEntry{fuzzed_data_provider.ConsumeIntegral()}; break; case 1: { const std::optional ban_entry = ConsumeDeserializable(fuzzed_data_provider); if (ban_entry) { return *ban_entry; } break; } } return CBanEntry{}; }(); (void)ban_entry; // currently unused }