]> xenbits.xensource.com Git - libvirt.git/commitdiff
Ensure failure to create macvtap device aborts LXC start
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 23 Nov 2012 16:38:01 +0000 (16:38 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 27 Nov 2012 17:02:22 +0000 (17:02 +0000)
A mistaken initialization of 'ret' caused failure to create
macvtap devices to be ignored. The libvirt_lxc process
would later fail to start due to missing devices

Also make sure code checks '< 0' and not '!= 0' since only
-1 is considered an error condition

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/lxc/lxc_process.c

index 954cb9e962257d6b4cac4fe0fc0ddd2dac4d68bd..6cfbb0df57cbce9f663bb90063d6996249faee1b 100644 (file)
@@ -360,7 +360,7 @@ static int virLXCProcessSetupInterfaceDirect(virConnectPtr conn,
                                              unsigned int *nveths,
                                              char ***veths)
 {
-    int ret = 0;
+    int ret = -1;
     char *res_ifname = NULL;
     virLXCDriverPtr driver = conn->privateData;
     virNetDevBandwidthPtr bw;
@@ -539,10 +539,10 @@ static int virLXCProcessSetupInterfaces(virConnectPtr conn,
         }
     }
 
-    ret= 0;
+    ret = 0;
 
 cleanup:
-    if (ret != 0) {
+    if (ret < 0) {
         for (i = 0 ; i < def->nnets ; i++) {
             virDomainNetDefPtr iface = def->nets[i];
             virNetDevVPortProfilePtr vport = virDomainNetGetActualVirtPortProfile(iface);
@@ -1046,7 +1046,7 @@ int virLXCProcessStart(virConnectPtr conn,
         }
     }
 
-    if (virLXCProcessSetupInterfaces(conn, vm->def, &nveths, &veths) != 0)
+    if (virLXCProcessSetupInterfaces(conn, vm->def, &nveths, &veths) < 0)
         goto cleanup;
 
     /* Save the configuration for the controller */