diff --git a/src/net.h b/src/net.h --- a/src/net.h +++ b/src/net.h @@ -24,6 +24,7 @@ #include #include #include +#include #include // For cs_main #include @@ -1114,6 +1115,7 @@ bool &complete); void SetCommonVersion(int greatest_common_version) { + Assume(m_greatest_common_version == INIT_PROTO_VERSION); m_greatest_common_version = greatest_common_version; } int GetCommonVersion() const { return m_greatest_common_version; } diff --git a/src/test/fuzz/net.cpp b/src/test/fuzz/net.cpp --- a/src/test/fuzz/net.cpp +++ b/src/test/fuzz/net.cpp @@ -55,8 +55,9 @@ {ConnectionType::INBOUND, ConnectionType::OUTBOUND, ConnectionType::MANUAL, ConnectionType::FEELER, ConnectionType::BLOCK_RELAY, ConnectionType::ADDR_FETCH})}; + node.SetCommonVersion(fuzzed_data_provider.ConsumeIntegral()); while (fuzzed_data_provider.ConsumeBool()) { - switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 11)) { + switch (fuzzed_data_provider.ConsumeIntegralInRange(0, 10)) { case 0: { node.CloseSocketDisconnect(); break; @@ -67,11 +68,6 @@ break; } case 2: { - node.SetCommonVersion( - fuzzed_data_provider.ConsumeIntegral()); - break; - } - case 3: { const std::vector asmap = ConsumeRandomLengthIntegralVector( fuzzed_data_provider, 128); @@ -82,18 +78,18 @@ node.copyStats(stats, asmap); break; } - case 4: { + case 3: { const CNode *add_ref_node = node.AddRef(); assert(add_ref_node == &node); break; } - case 5: { + case 4: { if (node.GetRefCount() > 0) { node.Release(); } break; } - case 6: { + case 5: { if (node.m_addr_known == nullptr) { break; } @@ -105,7 +101,7 @@ node.AddAddressKnown(*addr_opt); break; } - case 7: { + case 6: { if (node.m_addr_known == nullptr) { break; } @@ -119,7 +115,7 @@ node.PushAddress(*addr_opt, fast_random_context); break; } - case 8: { + case 7: { const std::optional inv_opt = ConsumeDeserializable(fuzzed_data_provider); if (!inv_opt) { @@ -129,12 +125,12 @@ node.AddKnownTx(txid); break; } - case 9: { + case 8: { const TxId &txid = TxId(ConsumeUInt256(fuzzed_data_provider)); node.PushTxInventory(txid); break; } - case 10: { + case 9: { const std::optional service_opt = ConsumeDeserializable(fuzzed_data_provider); if (!service_opt) { @@ -143,7 +139,7 @@ node.SetAddrLocal(*service_opt); break; } - case 11: { + case 10: { const std::vector b = ConsumeRandomLengthByteVector(fuzzed_data_provider); bool complete;