@@ -25,25 +25,23 @@ void initialize_addrman()
2525class CAddrManDeterministic : public CAddrMan
2626{
2727public:
28- void MakeDeterministic ( const uint256& random_seed )
28+ explicit CAddrManDeterministic (FuzzedDataProvider& fuzzed_data_provider )
2929 {
30- WITH_LOCK (cs, insecure_rand = FastRandomContext{random_seed});
31- Clear ();
30+ WITH_LOCK (cs, insecure_rand = FastRandomContext{ConsumeUInt256 (fuzzed_data_provider)});
31+ if (fuzzed_data_provider.ConsumeBool ()) {
32+ m_asmap = ConsumeRandomLengthBitVector (fuzzed_data_provider);
33+ if (!SanityCheckASMap (m_asmap)) {
34+ m_asmap.clear ();
35+ }
36+ }
3237 }
3338};
3439
3540FUZZ_TARGET_INIT (addrman, initialize_addrman)
3641{
3742 FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
3843 SetMockTime (ConsumeTime (fuzzed_data_provider));
39- CAddrManDeterministic addr_man;
40- addr_man.MakeDeterministic (ConsumeUInt256 (fuzzed_data_provider));
41- if (fuzzed_data_provider.ConsumeBool ()) {
42- addr_man.m_asmap = ConsumeRandomLengthBitVector (fuzzed_data_provider);
43- if (!SanityCheckASMap (addr_man.m_asmap )) {
44- addr_man.m_asmap .clear ();
45- }
46- }
44+ CAddrManDeterministic addr_man{fuzzed_data_provider};
4745 if (fuzzed_data_provider.ConsumeBool ()) {
4846 const std::vector<uint8_t > serialized_data{ConsumeRandomLengthByteVector (fuzzed_data_provider)};
4947 CDataStream ds (serialized_data, SER_DISK, INIT_PROTO_VERSION);
0 commit comments