Fix crash when remote plugin returns empty address string
@@ -46,6 +46,7 @@ var (
ErrOverlapPool = types.ForbiddenErrorf("Address pool overlaps with existing pool on this address space")
ErrNoAvailablePool = types.NoServiceErrorf("No available pool")
ErrNoAvailableIPs = types.NoServiceErrorf("No available addresses on this pool")
+ ErrNoIPReturned = types.NoServiceErrorf("No address returned")
ErrIPAlreadyAllocated = types.ForbiddenErrorf("Address already in use")
ErrIPOutOfRange = types.BadRequestErrorf("Requested address is out of range")
ErrPoolOverlap = types.ForbiddenErrorf("Pool overlaps with other one on this address space")
@@ -111,6 +111,8 @@ func (a *allocator) RequestAddress(poolID string, address net.IP, options map[st
}
if res.Address != "" {
retAddress, err = types.ParseCIDR(res.Address)
+ } else {
+ return nil, nil, ipamapi.ErrNoIPReturned
return retAddress, res.Data, err