summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJames Tucker <james@tailscale.com>2022-09-01 10:51:44 -0700
committerJames Tucker <jftucker@gmail.com>2022-09-01 10:58:04 -0700
commit265b008e49064adeef2e1d544cd13308fcf4f3cd (patch)
tree5e12dad308a05f5537236df0e3d379ffc20755f3
parenta5ad57472a74344c3e78cc2555b780db691a4b8f (diff)
downloadtailscale-265b008e49064adeef2e1d544cd13308fcf4f3cd.tar.xz
tailscale-265b008e49064adeef2e1d544cd13308fcf4f3cd.zip
wgengine: fix race on endpoints in getStatus
Signed-off-by: James Tucker <james@tailscale.com>
-rw-r--r--wgengine/userspace.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/wgengine/userspace.go b/wgengine/userspace.go
index f573dfd88..aabb57d60 100644
--- a/wgengine/userspace.go
+++ b/wgengine/userspace.go
@@ -1005,6 +1005,7 @@ func (e *userspaceEngine) getStatus() (*Status, error) {
closing := e.closing
peerKeys := make([]key.NodePublic, len(e.peerSequence))
copy(peerKeys, e.peerSequence)
+ localAddrs := append([]tailcfg.Endpoint(nil), e.endpoints...)
e.mu.Unlock()
if closing {
@@ -1020,7 +1021,7 @@ func (e *userspaceEngine) getStatus() (*Status, error) {
return &Status{
AsOf: time.Now(),
- LocalAddrs: append([]tailcfg.Endpoint(nil), e.endpoints...),
+ LocalAddrs: localAddrs,
Peers: peers,
DERPs: derpConns,
}, nil