Browse Source

wgengine/magicsock: fix crash introduced in recent cleanups

Fixes #2801

Signed-off-by: Brad Fitzpatrick <[email protected]>
Brad Fitzpatrick 4 years ago
parent
commit
2238814b99
1 changed files with 6 additions and 1 deletions
  1. 6 1
      wgengine/magicsock/magicsock.go

+ 6 - 1
wgengine/magicsock/magicsock.go

@@ -189,9 +189,14 @@ func (m *peerMap) deleteDiscoEndpoint(ep *endpoint) {
 		return
 	}
 	ep.stopAndReset()
-	pi := m.byDiscoKey[ep.discoKey]
+	pi := m.byNodeKey[ep.publicKey]
 	delete(m.byDiscoKey, ep.discoKey)
 	delete(m.byNodeKey, ep.publicKey)
+	if pi == nil {
+		// Kneejerk paranoia from earlier issue 2801.
+		// Unexpected. But no logger plumbed here to log so.
+		return
+	}
 	for ip := range pi.ipPorts {
 		delete(m.byIPPort, ip)
 	}