From 3e2a7de2e9d10cfa0fcda9d58c2dfbde3cb3ca36 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Tue, 14 Sep 2021 09:00:04 -0700 Subject: [PATCH] tailcfg: don't panic on clone of nil RegisterRequest Signed-off-by: Brad Fitzpatrick --- tailcfg/tailcfg.go | 3 +++ tailcfg/tailcfg_test.go | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/tailcfg/tailcfg.go b/tailcfg/tailcfg.go index 4e22afd33..1df4cf388 100644 --- a/tailcfg/tailcfg.go +++ b/tailcfg/tailcfg.go @@ -635,6 +635,9 @@ type RegisterRequest struct { // // TODO: extend cmd/cloner to generate this method. func (req *RegisterRequest) Clone() *RegisterRequest { + if req == nil { + return nil + } res := new(RegisterRequest) *res = *req if res.Hostinfo != nil { diff --git a/tailcfg/tailcfg_test.go b/tailcfg/tailcfg_test.go index f5fa60642..4cc987265 100644 --- a/tailcfg/tailcfg_test.go +++ b/tailcfg/tailcfg_test.go @@ -546,3 +546,11 @@ func TestDiscoKeyAppend(t *testing.T) { t.Errorf("got %q; want %q", got, want) } } + +func TestRegisterRequestNilClone(t *testing.T) { + var nilReq *RegisterRequest + got := nilReq.Clone() + if got != nil { + t.Errorf("got = %v; want nil", got) + } +}