]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Fix error flow in virDomainPCIAddressEnsureAddr()
authorAndrea Bolognani <abologna@redhat.com>
Fri, 16 Nov 2018 14:04:07 +0000 (15:04 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Fri, 16 Nov 2018 18:45:54 +0000 (19:45 +0100)
This avoids setting 'ret' multiple times, which will result
in errors being masked if the first operation fails but the
second one succeeds.

Introduced-by: f183b87fc1dbcc6446ac3c1cef9cdd345b9725fb
Spotted-by: Coverity
Reported-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/conf/domain_addr.c

index 3e1d767e4f0208dce05a6f28c1633eb5d4f16885..cc9ea82a33bf5343f550bf69d4d75bdd0aa915d5 100644 (file)
@@ -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);