From fa5faa5a097fdd599e352da80d34596d6671d562 Mon Sep 17 00:00:00 2001 From: Michael Schurter Date: Thu, 7 Dec 2017 22:04:22 -0800 Subject: [PATCH] Prevent using port 0 with address_mode=driver --- command/agent/consul/client.go | 3 +++ command/agent/consul/unit_test.go | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/command/agent/consul/client.go b/command/agent/consul/client.go index 78ea6429c..732b3aed0 100644 --- a/command/agent/consul/client.go +++ b/command/agent/consul/client.go @@ -1126,6 +1126,9 @@ func getAddress(addrMode, portLabel string, networks structs.Networks, driverNet if err != nil { return "", 0, fmt.Errorf("invalid port %q: %v", portLabel, err) } + if port == 0 { + return "", 0, fmt.Errorf("invalid port: %q: port 0 is invalid", portLabel) + } return driverNet.IP, port, nil diff --git a/command/agent/consul/unit_test.go b/command/agent/consul/unit_test.go index f9cec004f..672ef376e 100644 --- a/command/agent/consul/unit_test.go +++ b/command/agent/consul/unit_test.go @@ -1541,6 +1541,15 @@ func TestGetAddress(t *testing.T) { }, ErrContains: "invalid port", }, + { + Name: "DriverZeroPort", + Mode: structs.AddressModeDriver, + PortLabel: "0", + Driver: &cstructs.DriverNetwork{ + IP: "10.1.2.3", + }, + ErrContains: "invalid port", + }, { Name: "HostBadPort", Mode: structs.AddressModeHost,