From 724c4975622bc22cedc3f3814dfc8e66cf8371f7 Mon Sep 17 00:00:00 2001 From: John Newbery Date: Wed, 25 Aug 2021 13:30:17 +0100 Subject: [PATCH] [fuzz] Add ConsumeAsmap() function --- src/test/fuzz/addrman.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/test/fuzz/addrman.cpp b/src/test/fuzz/addrman.cpp index bc079451b4c..e95126a80f8 100644 --- a/src/test/fuzz/addrman.cpp +++ b/src/test/fuzz/addrman.cpp @@ -218,17 +218,18 @@ public: } }; +[[nodiscard]] inline std::vector ConsumeAsmap(FuzzedDataProvider& fuzzed_data_provider) noexcept +{ + std::vector asmap = ConsumeRandomLengthBitVector(fuzzed_data_provider); + if (!SanityCheckASMap(asmap)) asmap.clear(); + return asmap; +} + FUZZ_TARGET_INIT(addrman, initialize_addrman) { FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); SetMockTime(ConsumeTime(fuzzed_data_provider)); - std::vector asmap; - if (fuzzed_data_provider.ConsumeBool()) { - asmap = ConsumeRandomLengthBitVector(fuzzed_data_provider); - if (!SanityCheckASMap(asmap)) { - asmap.clear(); - } - } + std::vector asmap = ConsumeAsmap(fuzzed_data_provider); auto addr_man_ptr = std::make_unique(asmap, fuzzed_data_provider); if (fuzzed_data_provider.ConsumeBool()) { const std::vector serialized_data{ConsumeRandomLengthByteVector(fuzzed_data_provider)}; @@ -307,10 +308,7 @@ FUZZ_TARGET_INIT(addrman_serdeser, initialize_addrman) FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); SetMockTime(ConsumeTime(fuzzed_data_provider)); - std::vector asmap = ConsumeRandomLengthBitVector(fuzzed_data_provider); - if (!SanityCheckASMap(asmap)) { - asmap.clear(); - } + std::vector asmap = ConsumeAsmap(fuzzed_data_provider); CAddrManDeterministic addr_man1{asmap, fuzzed_data_provider}; CAddrManDeterministic addr_man2{asmap, fuzzed_data_provider};