@@ -218,17 +218,18 @@ class CAddrManDeterministic : public CAddrMan
218
218
}
219
219
};
220
220
221
+ [[nodiscard]] inline std::vector<bool > ConsumeAsmap (FuzzedDataProvider& fuzzed_data_provider) noexcept
222
+ {
223
+ std::vector<bool > asmap = ConsumeRandomLengthBitVector (fuzzed_data_provider);
224
+ if (!SanityCheckASMap (asmap)) asmap.clear ();
225
+ return asmap;
226
+ }
227
+
221
228
FUZZ_TARGET_INIT (addrman, initialize_addrman)
222
229
{
223
230
FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
224
231
SetMockTime (ConsumeTime (fuzzed_data_provider));
225
- std::vector<bool > asmap;
226
- if (fuzzed_data_provider.ConsumeBool ()) {
227
- asmap = ConsumeRandomLengthBitVector (fuzzed_data_provider);
228
- if (!SanityCheckASMap (asmap)) {
229
- asmap.clear ();
230
- }
231
- }
232
+ std::vector<bool > asmap = ConsumeAsmap (fuzzed_data_provider);
232
233
auto addr_man_ptr = std::make_unique<CAddrManDeterministic>(asmap, fuzzed_data_provider);
233
234
if (fuzzed_data_provider.ConsumeBool ()) {
234
235
const std::vector<uint8_t > serialized_data{ConsumeRandomLengthByteVector (fuzzed_data_provider)};
@@ -307,10 +308,7 @@ FUZZ_TARGET_INIT(addrman_serdeser, initialize_addrman)
307
308
FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
308
309
SetMockTime (ConsumeTime (fuzzed_data_provider));
309
310
310
- std::vector<bool > asmap = ConsumeRandomLengthBitVector (fuzzed_data_provider);
311
- if (!SanityCheckASMap (asmap)) {
312
- asmap.clear ();
313
- }
311
+ std::vector<bool > asmap = ConsumeAsmap (fuzzed_data_provider);
314
312
CAddrManDeterministic addr_man1{asmap, fuzzed_data_provider};
315
313
CAddrManDeterministic addr_man2{asmap, fuzzed_data_provider};
316
314
0 commit comments