Commit 70e36376 authored by xiangpengzhao's avatar xiangpengzhao

Fix port range check, port should no be greater than 65535.

parent 812b87c8
...@@ -71,12 +71,17 @@ func (pr *PortRange) Set(value string) error { ...@@ -71,12 +71,17 @@ func (pr *PortRange) Set(value string) error {
high, err = strconv.Atoi(value[hyphenIndex+1:]) high, err = strconv.Atoi(value[hyphenIndex+1:])
} }
if err != nil { 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 { if high < low {
return fmt.Errorf("end port cannot be less than start port: %s", value) return fmt.Errorf("end port cannot be less than start port: %s", value)
} }
pr.Base = low pr.Base = low
pr.Size = 1 + high - low pr.Size = 1 + high - low
return nil return nil
......
...@@ -38,6 +38,9 @@ func TestPortRange(t *testing.T) { ...@@ -38,6 +38,9 @@ func TestPortRange(t *testing.T) {
{"100 - 200", false, "", -1, -1}, {"100 - 200", false, "", -1, -1},
{"-100", false, "", -1, -1}, {"-100", 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 { for i := range testCases {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment