Merge pull request #14682 from duglin/Issue14621
Remove panic in nat package on invalid hostport Upstream-commit: 36106a20cacb8f96b64da303f651bbd2160e24e3 Component: engine
This commit is contained in:
@@ -6,17 +6,23 @@ import (
|
||||
"github.com/docker/docker/pkg/nat"
|
||||
)
|
||||
|
||||
// Just to make life easier
|
||||
func newPortNoError(proto, port string) nat.Port {
|
||||
p, _ := nat.NewPort(proto, port)
|
||||
return p
|
||||
}
|
||||
|
||||
func TestCompare(t *testing.T) {
|
||||
ports1 := make(nat.PortSet)
|
||||
ports1[nat.Port("1111/tcp")] = struct{}{}
|
||||
ports1[nat.Port("2222/tcp")] = struct{}{}
|
||||
ports1[newPortNoError("tcp", "1111")] = struct{}{}
|
||||
ports1[newPortNoError("tcp", "2222")] = struct{}{}
|
||||
ports2 := make(nat.PortSet)
|
||||
ports2[nat.Port("3333/tcp")] = struct{}{}
|
||||
ports2[nat.Port("4444/tcp")] = struct{}{}
|
||||
ports2[newPortNoError("tcp", "3333")] = struct{}{}
|
||||
ports2[newPortNoError("tcp", "4444")] = struct{}{}
|
||||
ports3 := make(nat.PortSet)
|
||||
ports3[nat.Port("1111/tcp")] = struct{}{}
|
||||
ports3[nat.Port("2222/tcp")] = struct{}{}
|
||||
ports3[nat.Port("5555/tcp")] = struct{}{}
|
||||
ports3[newPortNoError("tcp", "1111")] = struct{}{}
|
||||
ports3[newPortNoError("tcp", "2222")] = struct{}{}
|
||||
ports3[newPortNoError("tcp", "5555")] = struct{}{}
|
||||
volumes1 := make(map[string]struct{})
|
||||
volumes1["/test1"] = struct{}{}
|
||||
volumes2 := make(map[string]struct{})
|
||||
|
||||
@@ -11,8 +11,8 @@ func TestMerge(t *testing.T) {
|
||||
volumesImage["/test1"] = struct{}{}
|
||||
volumesImage["/test2"] = struct{}{}
|
||||
portsImage := make(nat.PortSet)
|
||||
portsImage[nat.Port("1111/tcp")] = struct{}{}
|
||||
portsImage[nat.Port("2222/tcp")] = struct{}{}
|
||||
portsImage[newPortNoError("tcp", "1111")] = struct{}{}
|
||||
portsImage[newPortNoError("tcp", "2222")] = struct{}{}
|
||||
configImage := &Config{
|
||||
ExposedPorts: portsImage,
|
||||
Env: []string{"VAR1=1", "VAR2=2"},
|
||||
@@ -20,8 +20,8 @@ func TestMerge(t *testing.T) {
|
||||
}
|
||||
|
||||
portsUser := make(nat.PortSet)
|
||||
portsUser[nat.Port("2222/tcp")] = struct{}{}
|
||||
portsUser[nat.Port("3333/tcp")] = struct{}{}
|
||||
portsUser[newPortNoError("tcp", "2222")] = struct{}{}
|
||||
portsUser[newPortNoError("tcp", "3333")] = struct{}{}
|
||||
volumesUser := make(map[string]struct{})
|
||||
volumesUser["/test3"] = struct{}{}
|
||||
configUser := &Config{
|
||||
|
||||
@@ -261,7 +261,10 @@ func Parse(cmd *flag.FlagSet, args []string) (*Config, *HostConfig, *flag.FlagSe
|
||||
return nil, nil, cmd, fmt.Errorf("Invalid range format for --expose: %s, error: %s", e, err)
|
||||
}
|
||||
for i := start; i <= end; i++ {
|
||||
p := nat.NewPort(proto, strconv.FormatUint(i, 10))
|
||||
p, err := nat.NewPort(proto, strconv.FormatUint(i, 10))
|
||||
if err != nil {
|
||||
return nil, nil, cmd, err
|
||||
}
|
||||
if _, exists := ports[p]; !exists {
|
||||
ports[p] = struct{}{}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user