diff --git a/src/net.cpp b/src/net.cpp index fc0edc1a5c1..66ded1041cd 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -367,7 +367,7 @@ CNode* CConnman::FindNode(const CService& addr) bool CConnman::AlreadyConnectedToAddress(const CAddress& addr) { - return FindNode(static_cast(addr)) || FindNode(addr.ToStringAddrPort()); + return FindNode(static_cast(addr)); } bool CConnman::CheckIncomingNonce(uint64_t nonce) diff --git a/src/test/fuzz/netaddress.cpp b/src/test/fuzz/netaddress.cpp index 28a2026a358..71990e1298e 100644 --- a/src/test/fuzz/netaddress.cpp +++ b/src/test/fuzz/netaddress.cpp @@ -101,10 +101,14 @@ FUZZ_TARGET(netaddress) (void)net_addr.GetReachabilityFrom(other_net_addr); (void)sub_net.Match(other_net_addr); - const CService other_service{net_addr, fuzzed_data_provider.ConsumeIntegral()}; + const CService other_service{fuzzed_data_provider.ConsumeBool() ? net_addr : other_net_addr, fuzzed_data_provider.ConsumeIntegral()}; assert((service == other_service) != (service != other_service)); (void)(service < other_service); + if (service.ToStringAddrPort() == other_service.ToStringAddrPort()) { + assert(static_cast(service) == static_cast(other_service)); + } + const CSubNet sub_net_copy_1{net_addr, other_net_addr}; const CSubNet sub_net_copy_2{net_addr};