From 332dc55dc7c6d510392b566003c0c7fea4563f8f Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 8 May 2019 19:44:23 +0200 Subject: ui: do not allow removed items state changes to change tray state runtime error: invalid memory address or nil pointer dereference goroutine 1 [running, locked to thread]: runtime/debug.Stack(0xc0000bbbc0, 0x9de240, 0x93bf40) C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/.deps/go/src/runtime/debug/stack.go:24 +0xa4 golang.zx2c4.com/wireguard/windows/ui.RunUI.func1() C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/ui/ui.go:25 +0x75 panic(0x9de240, 0x93bf40) C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/.deps/go/src/runtime/panic.go:522 +0x1c3 github.com/lxn/walk.(*Action).Checked(...) C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/.deps/gopath/pkg/mod/golang.zx2c4.com/wireguard/windows@v0.0.0-20190508085227-303a670b0ee4/action.go:118 golang.zx2c4.com/wireguard/windows/ui.(*Tray).SetTunnelState(0xc000106540, 0xc000041540, 0x2, 0xc000166001) C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/ui/tray.go:272 +0xa1 golang.zx2c4.com/wireguard/windows/ui.(*Tray).onTunnelChange.func1() C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/ui/tray.go:214 +0x99 github.com/lxn/walk.runSynchronized() C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/.deps/gopath/pkg/mod/golang.zx2c4.com/wireguard/windows@v0.0.0-20190508085227-303a670b0ee4/form.go:55 +0x95 github.com/lxn/walk.(*FormBase).Run(0xc000166000, 0x0) C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/.deps/gopath/pkg/mod/golang.zx2c4.com/wireguard/windows@v0.0.0-20190508085227-303a670b0ee4/form.go:413 +0x117 golang.zx2c4.com/wireguard/windows/ui.RunUI() C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/ui/ui.go:79 +0x225 main.main() C:/Users/Jason A. Donenfeld/Projects/wireguard-windows/main.go:207 +0x2cf Reported-by: Jungle Boogie --- ui/tray.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ui/tray.go') diff --git a/ui/tray.go b/ui/tray.go index 64c58a8a..bbaf7f13 100644 --- a/ui/tray.go +++ b/ui/tray.go @@ -265,6 +265,9 @@ func (tray *Tray) updateGlobalState(globalState service.TunnelState) { func (tray *Tray) SetTunnelState(tunnel *service.Tunnel, state service.TunnelState, showNotifications bool) { tunnelAction := tray.tunnels[tunnel.Name] + if tunnelAction == nil { + return + } actions := tray.ContextMenu().Actions() activeCIDRsAction := actions.At(1) -- cgit v1.2.3-59-g8ed1b