From 2de7beb31ec1bd90548650fb2f0b8c811983d27f Mon Sep 17 00:00:00 2001 From: 0xdcarns Date: Wed, 11 May 2022 12:07:06 -0400 Subject: [PATCH] added nil checks, handled empty map --- logic/util.go | 9 +++++---- logic/wireguard.go | 2 +- netclient/wireguard/common.go | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/logic/util.go b/logic/util.go index ee1ce4d2..9f052cd8 100644 --- a/logic/util.go +++ b/logic/util.go @@ -202,10 +202,11 @@ func StringSliceContains(slice []string, item string) bool { // sets the network server peers of a given node func setNetworkServerPeers(serverNode *models.Node) { if currentPeersList, err := getSystemPeers(serverNode); err == nil { - if len(currentPeersList) > 0 { - if database.SetPeers(currentPeersList, serverNode.Network) { - logger.Log(1, "set new peers on network", serverNode.Network) - } + if currentPeersList == nil { + currentPeersList = make(map[string]string) + } + if database.SetPeers(currentPeersList, serverNode.Network) { + logger.Log(1, "set new peers on network", serverNode.Network) } } else { logger.Log(1, "could not set peers on network", serverNode.Network, ":", err.Error()) diff --git a/logic/wireguard.go b/logic/wireguard.go index 766c56b5..999b469a 100644 --- a/logic/wireguard.go +++ b/logic/wireguard.go @@ -114,7 +114,7 @@ func getSystemPeers(node *models.Node) (map[string]string, error) { if err != nil { return nil, err } - if len(device.Peers) > 0 { + if device.Peers != nil && len(device.Peers) > 0 { for _, peer := range device.Peers { if IsBase64(peer.PublicKey.String()) && peer.Endpoint != nil && CheckEndpoint(peer.Endpoint.String()) { peers[peer.PublicKey.String()] = peer.Endpoint.String() diff --git a/netclient/wireguard/common.go b/netclient/wireguard/common.go index 3adf5c83..5f3a22c6 100644 --- a/netclient/wireguard/common.go +++ b/netclient/wireguard/common.go @@ -80,10 +80,10 @@ func SetPeers(iface string, node *models.Node, peers []wgtypes.PeerConfig) error } } - if len(devicePeers) > 0 { + if devicePeers != nil && len(devicePeers) > 0 { for _, currentPeer := range devicePeers { shouldDelete := true - if len(peers) > 0 { + if peers != nil && len(peers) > 0 { for _, peer := range peers { if peer.AllowedIPs[0].String() == currentPeer.AllowedIPs[0].String() { shouldDelete = false