wgengine: fix race on endpoints in getStatus

Signed-off-by: James Tucker <james@tailscale.com>
(cherry picked from commit 265b008e49)
This commit is contained in:
James Tucker 2022-09-01 10:51:44 -07:00 committed by Denton Gentry
parent bd14112d0b
commit 78584a8552
No known key found for this signature in database

View File

@ -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