Skip to content

Commit bfa52cb

Browse files
author
MarcoFalke
committed
Merge bitcoin/bitcoin#22493: fuzz: Extend addrman fuzz test with deserialize
aaaa9c6 fuzz: Extend addrman fuzz test with deserialize (MarcoFalke) Pull request description: Requested on IRC: ``` [18:01] <vasild> => I think there is a good chance fuzzing addrman unserialize will find more bugs [18:04] <sipa> definitely ACKs for top commit: jonatack: ACK aaaa9c6 per `git diff fa74025 aaaa9c6` vasild: ACK aaaa9c6 Tree-SHA512: f57d0aecf22a933e48d3181d7398218949588dd0de31218d1d28c825649e55fd60b0de6fbc92d2497cf5639a4adc2061c9bf8216546a2be916feac4f03f16e8f
2 parents 3f083a5 + aaaa9c6 commit bfa52cb

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/test/fuzz/addrman.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,17 @@ FUZZ_TARGET_INIT(addrman, initialize_addrman)
4444
addr_man.m_asmap.clear();
4545
}
4646
}
47+
if (fuzzed_data_provider.ConsumeBool()) {
48+
const std::vector<uint8_t> serialized_data{ConsumeRandomLengthByteVector(fuzzed_data_provider)};
49+
CDataStream ds(serialized_data, SER_DISK, INIT_PROTO_VERSION);
50+
const auto ser_version{fuzzed_data_provider.ConsumeIntegral<int32_t>()};
51+
ds.SetVersion(ser_version);
52+
try {
53+
ds >> addr_man;
54+
} catch (const std::ios_base::failure&) {
55+
addr_man.Clear();
56+
}
57+
}
4758
while (fuzzed_data_provider.ConsumeBool()) {
4859
CallOneOf(
4960
fuzzed_data_provider,

0 commit comments

Comments
 (0)