summaryrefslogtreecommitdiffhomepage
path: root/ipn/message.go
diff options
context:
space:
mode:
authorDavid Crawshaw <crawshaw@tailscale.com>2021-05-18 13:25:43 -0700
committerDavid Crawshaw <crawshaw@tailscale.com>2021-05-18 13:29:40 -0700
commit0c55ab0ce2a505545a3ea2302d9fa22fb435a843 (patch)
treee7c3117f745e3652f0e71fb4463965af036aa719 /ipn/message.go
parent85df1b0fa7d565f5b3deddd825fd08eafbd71632 (diff)
downloadtailscale-crawshaw/newbackendserver.tar.xz
tailscale-crawshaw/newbackendserver.zip
ipn: allow b to be nil in NewBackendServercrawshaw/newbackendserver
A couple of code paths in ipnserver use a NewBackendServer with a nil backend just to call the callback with an encapsulated error message. This covers a panic case seen in logs. For #1920 Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
Diffstat (limited to 'ipn/message.go')
-rw-r--r--ipn/message.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/ipn/message.go b/ipn/message.go
index d8b7d1396..fb5638eca 100644
--- a/ipn/message.go
+++ b/ipn/message.go
@@ -104,7 +104,9 @@ func NewBackendServer(logf logger.Logf, b Backend, sendNotifyMsg func(Notify)) *
b: b,
sendNotifyMsg: sendNotifyMsg,
}
- if sendNotifyMsg != nil {
+ // b may be nil if the BackendServer is being created just to
+ // encapsulate and send an error message.
+ if sendNotifyMsg != nil && b != nil {
b.SetNotifyCallback(bs.send)
}
return bs