From 30e5c1921435ed94766b831000c5e02e8c94259d Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Thu, 28 May 2020 03:42:03 -0400 Subject: [PATCH] magicsock: work around race condition initializing .Regions[]. Signed-off-by: Avery Pennarun --- wgengine/magicsock/magicsock.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 29be2233e..aeaafeec6 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -487,7 +487,12 @@ func (c *Conn) setNearestDERP(derpNum int) (wantDERP bool) { // On change, notify all currently connected DERP servers and // start connecting to our home DERP if we are not already. - c.logf("magicsock: home is now derp-%v (%v)", derpNum, c.derpMap.Regions[derpNum].RegionCode) + dr := c.derpMap.Regions[derpNum] + if dr == nil { + c.logf("[unexpected] magicsock: derpMap.Regions[%v] is nil", derpNum) + } else { + c.logf("magicsock: home is now derp-%v (%v)", derpNum, c.derpMap.Regions[derpNum].RegionCode) + } for i, ad := range c.activeDerp { go ad.c.NotePreferred(i == c.myDerp) }