From edce91a8a6ec2ef577dd24926810120cdd758269 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Tue, 19 Jan 2021 10:57:30 -0800 Subject: [PATCH] wgengine/magicsock: fix a naked return bug/crash where we returned (nil, true) The 'ok' from 'ipp, ok :=' above was the result parameter ok. Whoops. --- wgengine/magicsock/magicsock.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 5e74c07ed..67314c700 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -1535,21 +1535,21 @@ func (c *Conn) ReceiveIPv4(b []byte) (n int, ep conn.Endpoint, err error) { func (c *Conn) receiveIP(b []byte, ua *net.UDPAddr, cache *ippEndpointCache) (ep conn.Endpoint, ok bool) { ipp, ok := netaddr.FromStdAddr(ua.IP, ua.Port, ua.Zone) if !ok { - return + return nil, false } if stun.Is(b) { c.stunReceiveFunc.Load().(func([]byte, netaddr.IPPort))(b, ipp) - return + return nil, false } if c.handleDiscoMessage(b, ipp) { - return + return nil, false } if cache.ipp == ipp && cache.de != nil && cache.gen == cache.de.numStopAndReset() { ep = cache.de } else { ep = c.findEndpoint(ipp, ua, b) if ep == nil { - return + return nil, false } if de, ok := ep.(*discoEndpoint); ok { cache.ipp = ipp