
On Thu, 2020-04-09 at 12:31 +0200, Shalini Chellathurai Saroja wrote:
+static bool +qemuDomainDeviceDefValidateZPCIUid(virZPCIDeviceAddressPtr zpci) +{ + if (zpci->uid_set && + (zpci->uid > VIR_DOMAIN_DEVICE_ZPCI_MAX_UID || + zpci->uid == 0)) { + virReportError(VIR_ERR_XML_ERROR, + _("Invalid PCI address uid='0x%.4x', " + "must be > 0x0000 and <= 0x%.4x"), + zpci->uid, + VIR_DOMAIN_DEVICE_ZPCI_MAX_UID); + return false; + } + + return true; +} + + static int qemuValidateDomainDeviceDefZPCIAddress(virDomainDeviceInfoPtr info, virQEMUCapsPtr qemuCaps) @@ -960,6 +978,12 @@ qemuValidateDomainDeviceDefZPCIAddress(virDomainDeviceInfoPtr info, return -1; }
+ /* We don't need to check fid because fid covers + * all range of uint32 type. + */ + if (!qemuDomainDeviceDefValidateZPCIUid(&info->addr.pci.zpci)) + return -1;
No need to create a separate function, just perform the check inline here. -- Andrea Bolognani / Red Hat / Virtualization