[#607] network: Prevent potential panic in `Address.Equal` method

Make `Address.Equal` method to accept value instead of pointer in order to
prevent NPE.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
support/v0.27
Leonard Lyubich 2021-06-16 13:31:03 +03:00 committed by Leonard Lyubich
parent 6de0af0650
commit fdd123ad98
3 changed files with 4 additions and 4 deletions

View File

@ -50,7 +50,7 @@ func TestNodeSection(t *testing.T) {
require.NoError(t, err)
require.Equal(t, "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM", key.Address())
require.Equal(t, true, addr.Equal(expectedAddr))
require.Equal(t, true, addr.Equal(*expectedAddr))
require.Equal(t, true, relay)
require.Len(t, attributes, 2)

View File

@ -503,7 +503,7 @@ func (c *reputationClientConstructor) Get(addr *network.Address) (client.Client,
for i := range nm.Nodes {
netAddr, err := network.AddressFromString(nm.Nodes[i].Address())
if err == nil {
if netAddr.Equal(addr) {
if netAddr.Equal(*addr) {
prm := truststorage.UpdatePrm{}
prm.SetPeer(reputation.PeerIDFromBytes(nm.Nodes[i].PublicKey()))

View File

@ -49,7 +49,7 @@ func (a Address) String() string {
}
// Equal compares Address's.
func (a Address) Equal(addr *Address) bool {
func (a Address) Equal(addr Address) bool {
return a.ma.Equal(addr.ma)
}
@ -129,7 +129,7 @@ func multiaddrStringFromHostAddr(host string) (string, error) {
// IsLocalAddress returns true if network endpoint from local address
// source is equal to network endpoint of passed address.
func IsLocalAddress(src LocalAddressSource, addr *Address) bool {
return src.LocalAddress().Equal(addr)
return src.LocalAddress().Equal(*addr)
}
// HostAddrFromMultiaddr converts "/dns4/localhost/tcp/8080" to "localhost:8080".