Skip to content

Commit 1bf915d

Browse files
committed
Merge bitcoin/bitcoin#28470: fuzz: Rework addr fuzzing
fad52ba fuzz: Rework addr fuzzing (MarcoFalke) fa5b6d2 fuzz: Drop unused params from serialize helpers (MarcoFalke) Pull request description: Some minor fixups to addr fuzzing ACKs for top commit: dergoegge: utACK fad52ba Tree-SHA512: 6a2b07fb1a65cf855d5e7c0a52bfcb81d46dbc5d4b3e72cef359987cbd28dbfeb2fc54f210e9737cb131b40ac5f88a90e9af284e441e0b37196121590bbaf015
2 parents abe4fed + fad52ba commit 1bf915d

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/test/fuzz/deserialize.cpp

+11-13
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ void DeserializeFromFuzzingInput(FuzzBufferType buffer, T&& obj, const P& params
9191
}
9292

9393
template <typename T>
94-
CDataStream Serialize(const T& obj, const int version = INIT_PROTO_VERSION, const int ser_type = SER_NETWORK)
94+
CDataStream Serialize(const T& obj)
9595
{
96-
CDataStream ds(ser_type, version);
96+
CDataStream ds{SER_NETWORK, INIT_PROTO_VERSION};
9797
ds << obj;
9898
return ds;
9999
}
@@ -107,12 +107,10 @@ T Deserialize(CDataStream ds)
107107
}
108108

109109
template <typename T>
110-
void DeserializeFromFuzzingInput(FuzzBufferType buffer, T&& obj, const std::optional<int> protocol_version = std::nullopt, const int ser_type = SER_NETWORK)
110+
void DeserializeFromFuzzingInput(FuzzBufferType buffer, T&& obj)
111111
{
112-
CDataStream ds(buffer, ser_type, INIT_PROTO_VERSION);
113-
if (protocol_version) {
114-
ds.SetVersion(*protocol_version);
115-
} else {
112+
CDataStream ds{buffer, SER_NETWORK, INIT_PROTO_VERSION};
113+
{
116114
try {
117115
int version;
118116
ds >> version;
@@ -135,9 +133,9 @@ void AssertEqualAfterSerializeDeserialize(const T& obj, const P& params)
135133
assert(Deserialize<T>(Serialize(obj, params), params) == obj);
136134
}
137135
template <typename T>
138-
void AssertEqualAfterSerializeDeserialize(const T& obj, const int version = INIT_PROTO_VERSION, const int ser_type = SER_NETWORK)
136+
void AssertEqualAfterSerializeDeserialize(const T& obj)
139137
{
140-
assert(Deserialize<T>(Serialize(obj, version, ser_type)) == obj);
138+
assert(Deserialize<T>(Serialize(obj)) == obj);
141139
}
142140

143141
} // namespace
@@ -254,7 +252,7 @@ FUZZ_TARGET(netaddr_deserialize, .init = initialize_deserialize)
254252
if (!maybe_na) return;
255253
const CNetAddr& na{*maybe_na};
256254
if (na.IsAddrV1Compatible()) {
257-
AssertEqualAfterSerializeDeserialize(na, ConsumeDeserializationParams<CNetAddr::SerParams>(fdp));
255+
AssertEqualAfterSerializeDeserialize(na, CNetAddr::V1);
258256
}
259257
AssertEqualAfterSerializeDeserialize(na, CNetAddr::V2);
260258
}
@@ -266,7 +264,7 @@ FUZZ_TARGET(service_deserialize, .init = initialize_deserialize)
266264
if (!maybe_s) return;
267265
const CService& s{*maybe_s};
268266
if (s.IsAddrV1Compatible()) {
269-
AssertEqualAfterSerializeDeserialize(s, ConsumeDeserializationParams<CNetAddr::SerParams>(fdp));
267+
AssertEqualAfterSerializeDeserialize(s, CNetAddr::V1);
270268
}
271269
AssertEqualAfterSerializeDeserialize(s, CNetAddr::V2);
272270
if (ser_params.enc == CNetAddr::Encoding::V1) {
@@ -281,8 +279,8 @@ FUZZ_TARGET_DESERIALIZE(messageheader_deserialize, {
281279
FUZZ_TARGET(address_deserialize, .init = initialize_deserialize)
282280
{
283281
FuzzedDataProvider fdp{buffer.data(), buffer.size()};
284-
const auto ser_enc{ConsumeDeserializationParams<CNetAddr::SerParams>(fdp)};
285-
const auto maybe_a{ConsumeDeserializable<CAddress>(fdp, CAddress::SerParams{{ser_enc}, CAddress::Format::Network})};
282+
const auto ser_enc{ConsumeDeserializationParams<CAddress::SerParams>(fdp)};
283+
const auto maybe_a{ConsumeDeserializable<CAddress>(fdp, ser_enc)};
286284
if (!maybe_a) return;
287285
const CAddress& a{*maybe_a};
288286
// A CAddress in V1 mode will roundtrip

0 commit comments

Comments
 (0)