guard against nil {Local,Remote}Addr() return values

This commit is contained in:
Marten Seemann 2021-06-23 10:48:13 -07:00
parent f9c8287afc
commit 1a8d3e4c45

View File

@ -248,16 +248,16 @@ func (l *maListener) Accept() (Conn, error) {
var raddr ma.Multiaddr
// This block protects us in transports (i.e. unix sockets) that don't have
// remote addresses for inbound connections.
if nconn.RemoteAddr().String() != "" {
raddr, err = FromNetAddr(nconn.RemoteAddr())
if addr := nconn.RemoteAddr(); addr != nil && addr.String() != "" {
raddr, err = FromNetAddr(addr)
if err != nil {
return nil, fmt.Errorf("failed to convert conn.RemoteAddr: %s", err)
}
}
var laddr ma.Multiaddr
if nconn.LocalAddr().String() != "" {
laddr, err = FromNetAddr(nconn.LocalAddr())
if addr := nconn.LocalAddr(); addr != nil && addr.String() != "" {
laddr, err = FromNetAddr(addr)
if err != nil {
return nil, fmt.Errorf("failed to convert conn.LocalAddr: %s", err)
}