File tree Expand file tree Collapse file tree 2 files changed +11
-6
lines changed Expand file tree Collapse file tree 2 files changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -55,21 +55,25 @@ void initialize_process_message()
55
55
void fuzz_target (const std::vector<uint8_t >& buffer, const std::string& LIMIT_TO_MESSAGE_TYPE)
56
56
{
57
57
FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
58
+
58
59
ConnmanTestMsg& connman = *(ConnmanTestMsg*)g_setup->m_node .connman .get ();
59
60
TestChainState& chainstate = *(TestChainState*)&g_setup->m_node .chainman ->ActiveChainstate ();
61
+ SetMockTime (1610000000 ); // any time to successfully reset ibd
60
62
chainstate.ResetIbd ();
63
+
61
64
const std::string random_message_type{fuzzed_data_provider.ConsumeBytesAsString (CMessageHeader::COMMAND_SIZE).c_str ()};
62
65
if (!LIMIT_TO_MESSAGE_TYPE.empty () && random_message_type != LIMIT_TO_MESSAGE_TYPE) {
63
66
return ;
64
67
}
65
- const bool jump_out_of_ibd{fuzzed_data_provider.ConsumeBool ()};
66
- if (jump_out_of_ibd) chainstate.JumpOutOfIbd ();
67
68
CNode& p2p_node = *ConsumeNodeAsUniquePtr (fuzzed_data_provider).release ();
68
69
FillNode (fuzzed_data_provider, p2p_node);
69
70
p2p_node.fSuccessfullyConnected = true ;
70
71
connman.AddTestNode (p2p_node);
71
72
g_setup->m_node .peerman ->InitializeNode (&p2p_node);
72
73
74
+ const auto mock_time = ConsumeTime (fuzzed_data_provider);
75
+ SetMockTime (mock_time);
76
+
73
77
// fuzzed_data_provider is fully consumed after this call, don't use it
74
78
CDataStream random_bytes_data_stream{fuzzed_data_provider.ConsumeRemainingBytes <unsigned char >(), SER_NETWORK, PROTOCOL_VERSION};
75
79
try {
Original file line number Diff line number Diff line change @@ -41,10 +41,10 @@ FUZZ_TARGET_INIT(process_messages, initialize_process_messages)
41
41
42
42
ConnmanTestMsg& connman = *(ConnmanTestMsg*)g_setup->m_node .connman .get ();
43
43
TestChainState& chainstate = *(TestChainState*)&g_setup->m_node .chainman ->ActiveChainstate ();
44
+ SetMockTime (1610000000 ); // any time to successfully reset ibd
44
45
chainstate.ResetIbd ();
45
- std::vector<CNode*> peers;
46
- bool jump_out_of_ibd{false };
47
46
47
+ std::vector<CNode*> peers;
48
48
const auto num_peers_to_add = fuzzed_data_provider.ConsumeIntegralInRange (1 , 3 );
49
49
for (int i = 0 ; i < num_peers_to_add; ++i) {
50
50
peers.push_back (ConsumeNodeAsUniquePtr (fuzzed_data_provider, i).release ());
@@ -59,10 +59,11 @@ FUZZ_TARGET_INIT(process_messages, initialize_process_messages)
59
59
}
60
60
61
61
while (fuzzed_data_provider.ConsumeBool ()) {
62
- if (!jump_out_of_ibd) jump_out_of_ibd = fuzzed_data_provider.ConsumeBool ();
63
- if (jump_out_of_ibd && chainstate.IsInitialBlockDownload ()) chainstate.JumpOutOfIbd ();
64
62
const std::string random_message_type{fuzzed_data_provider.ConsumeBytesAsString (CMessageHeader::COMMAND_SIZE).c_str ()};
65
63
64
+ const auto mock_time = ConsumeTime (fuzzed_data_provider);
65
+ SetMockTime (mock_time);
66
+
66
67
CSerializedNetMsg net_msg;
67
68
net_msg.m_type = random_message_type;
68
69
net_msg.data = ConsumeRandomLengthByteVector (fuzzed_data_provider);
You can’t perform that action at this time.
0 commit comments