diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index 3e1d767e4f0208dce05a6f28c1633eb5d4f16885..cc9ea82a33bf5343f550bf69d4d75bdd0aa915d5 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -940,15 +940,21 @@ virDomainPCIAddressEnsureAddr(virDomainPCIAddressSetPtr addrs, addrStr, flags, true)) goto cleanup; - ret = virDomainPCIAddressReserveAddrInternal(addrs, &dev->addr.pci, - flags, dev->isolationGroup, - true); + if (virDomainPCIAddressReserveAddrInternal(addrs, &dev->addr.pci, + flags, dev->isolationGroup, + true) < 0) { + goto cleanup; + } } else { - ret = virDomainPCIAddressReserveNextAddr(addrs, dev, flags, -1); + if (virDomainPCIAddressReserveNextAddr(addrs, dev, flags, -1) < 0) + goto cleanup; } dev->addr.pci.extFlags = dev->pciAddrExtFlags; - ret = virDomainPCIAddressExtensionEnsureAddr(addrs, &dev->addr.pci); + if (virDomainPCIAddressExtensionEnsureAddr(addrs, &dev->addr.pci) < 0) + goto cleanup; + + ret = 0; cleanup: VIR_FREE(addrStr);