4
4
5
5
#include < chainparams.h>
6
6
#include < net.h>
7
+ #include < netmessagemaker.h>
7
8
#include < protocol.h>
8
9
#include < test/fuzz/fuzz.h>
9
10
13
14
#include < optional>
14
15
#include < vector>
15
16
16
- void initialize_p2p_transport_deserializer ()
17
+ void initialize_p2p_transport_serialization ()
17
18
{
18
19
SelectParams (CBaseChainParams::REGTEST);
19
20
}
20
21
21
- FUZZ_TARGET_INIT (p2p_transport_deserializer, initialize_p2p_transport_deserializer )
22
+ FUZZ_TARGET_INIT (p2p_transport_serialization, initialize_p2p_transport_serialization )
22
23
{
23
24
// Construct deserializer, with a dummy NodeId
24
25
V1TransportDeserializer deserializer{Params (), (NodeId)0 , SER_NETWORK, INIT_PROTO_VERSION};
26
+ V1TransportSerializer serializer{};
25
27
Span<const uint8_t > msg_bytes{buffer};
26
28
while (msg_bytes.size () > 0 ) {
27
29
const int handled = deserializer.Read (msg_bytes);
@@ -37,6 +39,10 @@ FUZZ_TARGET_INIT(p2p_transport_deserializer, initialize_p2p_transport_deserializ
37
39
assert (result->m_raw_message_size <= buffer.size ());
38
40
assert (result->m_raw_message_size == CMessageHeader::HEADER_SIZE + result->m_message_size );
39
41
assert (result->m_time == m_time);
42
+
43
+ std::vector<unsigned char > header;
44
+ auto msg = CNetMsgMaker{result->m_recv .GetVersion ()}.Make (result->m_command , MakeUCharSpan (result->m_recv ));
45
+ serializer.prepareForTransport (msg, header);
40
46
}
41
47
}
42
48
}
0 commit comments