From fdcd3bb57408736590ffd758727ad2d4d9d13600 Mon Sep 17 00:00:00 2001 From: Casey Marshall Date: Sat, 19 Jun 2021 18:18:13 -0500 Subject: [PATCH] Fix nil dereference in nodes list command. Fixes a nil pointer dereference observed when listing nodes that have not yet connected. ``` panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xb931a4] goroutine 1 [running]: github.com/juanfont/headscale/cmd/headscale/cli.glob..func8(0x13c93e0, 0xc0004c4220, 0x0, 0x2) /go/src/headscale/cmd/headscale/cli/nodes.go:74 +0x364 github.com/spf13/cobra.(*Command).execute(0x13c93e0, 0xc0004c41e0, 0x2, 0x2, 0x13c93e0, 0xc0004c41e0) /go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:856 +0x2c2 github.com/spf13/cobra.(*Command).ExecuteC(0x13ca2e0, 0xc000497110, 0xe76416, 0x6) /go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:960 +0x375 github.com/spf13/cobra.(*Command).Execute(...) /go/pkg/mod/github.com/spf13/cobra@v1.1.3/command.go:897 main.main() /go/src/headscale/cmd/headscale/headscale.go:89 +0x805 command terminated with exit code 2 ``` --- cmd/headscale/cli/nodes.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/headscale/cli/nodes.go b/cmd/headscale/cli/nodes.go index e6f5876a..c3b31a85 100644 --- a/cmd/headscale/cli/nodes.go +++ b/cmd/headscale/cli/nodes.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "strings" + "time" "github.com/spf13/cobra" ) @@ -71,7 +72,11 @@ var ListNodesCmd = &cobra.Command{ if m.AuthKey != nil && m.AuthKey.Ephemeral { ephemeral = true } - fmt.Printf("%s\t%s\t%t\n", m.Name, m.LastSeen.Format("2006-01-02 15:04:05"), ephemeral) + var lastSeen time.Time + if m.LastSeen != nil { + lastSeen = *m.LastSeen + } + fmt.Printf("%s\t%s\t%t\n", m.Name, lastSeen.Format("2006-01-02 15:04:05"), ephemeral) } },