mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
conf: validate that PCI controller index is < 256
This is the maximum for many reasons, for starters because index == bus number, and a controller's bus number is 8 bits. This incidentally resolves: https://bugzilla.redhat.com/1329090
This commit is contained in:
parent
43da691582
commit
272f185631
@ -4897,6 +4897,21 @@ virDomainNetDefValidate(const virDomainNetDef *net)
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virDomainControllerDefValidate(const virDomainControllerDef *controller)
|
||||
{
|
||||
if (controller->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
|
||||
if (controller->idx > 255) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("PCI controller index %d too high, maximum is 255"),
|
||||
controller->idx);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
virDomainDeviceDefValidateInternal(const virDomainDeviceDef *dev,
|
||||
const virDomainDef *def)
|
||||
@ -4911,6 +4926,9 @@ virDomainDeviceDefValidateInternal(const virDomainDeviceDef *dev,
|
||||
case VIR_DOMAIN_DEVICE_NET:
|
||||
return virDomainNetDefValidate(dev->data.net);
|
||||
|
||||
case VIR_DOMAIN_DEVICE_CONTROLLER:
|
||||
return virDomainControllerDefValidate(dev->data.controller);
|
||||
|
||||
case VIR_DOMAIN_DEVICE_LEASE:
|
||||
case VIR_DOMAIN_DEVICE_FS:
|
||||
case VIR_DOMAIN_DEVICE_INPUT:
|
||||
@ -4918,7 +4936,6 @@ virDomainDeviceDefValidateInternal(const virDomainDeviceDef *dev,
|
||||
case VIR_DOMAIN_DEVICE_VIDEO:
|
||||
case VIR_DOMAIN_DEVICE_HOSTDEV:
|
||||
case VIR_DOMAIN_DEVICE_WATCHDOG:
|
||||
case VIR_DOMAIN_DEVICE_CONTROLLER:
|
||||
case VIR_DOMAIN_DEVICE_GRAPHICS:
|
||||
case VIR_DOMAIN_DEVICE_HUB:
|
||||
case VIR_DOMAIN_DEVICE_SMARTCARD:
|
||||
|
Loading…
x
Reference in New Issue
Block a user