From f928284b85287551531febf805bf16c8068c41f1 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 23 Nov 2012 16:38:01 +0000 Subject: [PATCH] Ensure failure to create macvtap device aborts LXC start 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 (cherry picked from commit 43db9cf4ed72e20021907073a656b5f3d7fd1f28) --- src/lxc/lxc_process.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 70513c2e83..e611634e08 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -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); @@ -1031,7 +1031,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 */