diff --git a/pkg/util/net/port_range.go b/pkg/util/net/port_range.go index 6afdbf25fac..6a50e6186da 100644 --- a/pkg/util/net/port_range.go +++ b/pkg/util/net/port_range.go @@ -71,12 +71,17 @@ func (pr *PortRange) Set(value string) error { high, err = strconv.Atoi(value[hyphenIndex+1:]) } if err != nil { - return fmt.Errorf("unable to parse port range: %s", value) + return fmt.Errorf("unable to parse port range: %s: %v", value, err) + } + + if low > 65535 || high > 65535 { + return fmt.Errorf("the port range cannot be greater than 65535: %s", value) } if high < low { return fmt.Errorf("end port cannot be less than start port: %s", value) } + pr.Base = low pr.Size = 1 + high - low return nil diff --git a/pkg/util/net/port_range_test.go b/pkg/util/net/port_range_test.go index e35e26798c6..897b8df61a5 100644 --- a/pkg/util/net/port_range_test.go +++ b/pkg/util/net/port_range_test.go @@ -38,6 +38,9 @@ func TestPortRange(t *testing.T) { {"100 - 200", false, "", -1, -1}, {"-100", false, "", -1, -1}, {"100-", false, "", -1, -1}, + {"200-100", false, "", -1, -1}, + {"60000-70000", false, "", -1, -1}, + {"70000-80000", false, "", -1, -1}, } for i := range testCases {