diff --git a/src/Makefile.test.include b/src/Makefile.test.include index dc79ea3125..35bff51438 100644 --- a/src/Makefile.test.include +++ b/src/Makefile.test.include @@ -257,7 +257,7 @@ test_fuzz_fuzz_SOURCES = \ test/fuzz/netaddress.cpp \ test/fuzz/netbase_dns_lookup.cpp \ test/fuzz/node_eviction.cpp \ - test/fuzz/p2p_transport_deserializer.cpp \ + test/fuzz/p2p_transport_serialization.cpp \ test/fuzz/parse_hd_keypath.cpp \ test/fuzz/parse_iso8601.cpp \ test/fuzz/parse_numbers.cpp \ diff --git a/src/test/fuzz/p2p_transport_deserializer.cpp b/src/test/fuzz/p2p_transport_serialization.cpp similarity index 76% rename from src/test/fuzz/p2p_transport_deserializer.cpp rename to src/test/fuzz/p2p_transport_serialization.cpp index 3a1fdaad8f..2618a2a398 100644 --- a/src/test/fuzz/p2p_transport_deserializer.cpp +++ b/src/test/fuzz/p2p_transport_serialization.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include @@ -13,15 +14,16 @@ #include #include -void initialize_p2p_transport_deserializer() +void initialize_p2p_transport_serialization() { SelectParams(CBaseChainParams::REGTEST); } -FUZZ_TARGET_INIT(p2p_transport_deserializer, initialize_p2p_transport_deserializer) +FUZZ_TARGET_INIT(p2p_transport_serialization, initialize_p2p_transport_serialization) { // Construct deserializer, with a dummy NodeId V1TransportDeserializer deserializer{Params(), (NodeId)0, SER_NETWORK, INIT_PROTO_VERSION}; + V1TransportSerializer serializer{}; Span msg_bytes{buffer}; while (msg_bytes.size() > 0) { const int handled = deserializer.Read(msg_bytes); @@ -37,6 +39,10 @@ FUZZ_TARGET_INIT(p2p_transport_deserializer, initialize_p2p_transport_deserializ assert(result->m_raw_message_size <= buffer.size()); assert(result->m_raw_message_size == CMessageHeader::HEADER_SIZE + result->m_message_size); assert(result->m_time == m_time); + + std::vector header; + auto msg = CNetMsgMaker{result->m_recv.GetVersion()}.Make(result->m_command, MakeUCharSpan(result->m_recv)); + serializer.prepareForTransport(msg, header); } } }