Check that --ip-range is a CIDR address

Signed-off-by: Rob Murray <rob.murray@docker.com>
This commit is contained in:
Rob Murray 2024-09-26 20:21:10 +01:00
parent daabb1533e
commit 8fca0a1f28
2 changed files with 12 additions and 0 deletions

View File

@ -163,6 +163,9 @@ func createIPAMConfig(options ipamOptions) (*network.IPAM, error) {
for _, r := range options.ipRanges { for _, r := range options.ipRanges {
match := false match := false
for _, s := range options.subnets { for _, s := range options.subnets {
if _, _, err := net.ParseCIDR(r); err != nil {
return nil, err
}
ok, err := subnetMatches(s, r) ok, err := subnetMatches(s, r)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -124,6 +124,15 @@ func TestNetworkCreateErrors(t *testing.T) {
}, },
expectedError: "no matching subnet for aux-address", expectedError: "no matching subnet for aux-address",
}, },
{
args: []string{"toto"},
flags: map[string]string{
"ip-range": "192.168.83.1-192.168.83.254",
"gateway": "192.168.80.1",
"subnet": "192.168.80.0/20",
},
expectedError: "invalid CIDR address: 192.168.83.1-192.168.83.254",
},
} }
for _, tc := range testCases { for _, tc := range testCases {