@@ -25,25 +25,23 @@ void initialize_addrman()
25
25
class CAddrManDeterministic : public CAddrMan
26
26
{
27
27
public:
28
- void MakeDeterministic ( const uint256& random_seed )
28
+ explicit CAddrManDeterministic (FuzzedDataProvider& fuzzed_data_provider )
29
29
{
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
+ }
32
37
}
33
38
};
34
39
35
40
FUZZ_TARGET_INIT (addrman, initialize_addrman)
36
41
{
37
42
FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
38
43
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};
47
45
if (fuzzed_data_provider.ConsumeBool ()) {
48
46
const std::vector<uint8_t > serialized_data{ConsumeRandomLengthByteVector (fuzzed_data_provider)};
49
47
CDataStream ds (serialized_data, SER_DISK, INIT_PROTO_VERSION);
0 commit comments