[libvirt] [PATCH] lxc: Fix error handlings in lxcContainerRenameAndEnableInterfaces

Ryota Ozaki ozaki.ryota at gmail.com
Sat Jun 26 20:59:59 UTC 2010


The function is expected to return negative value on failure,
however, it returns positive value when either setInterfaceName
or vethInterfaceUpOrDown fails. Because the function returns
the return value of either as is, however, the two functions
may return positive value on failure.

The patch fixes the defects and add error messages.
---
 src/lxc/lxc_container.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 018f4d5..4371dba 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -255,13 +255,20 @@ static int lxcContainerRenameAndEnableInterfaces(unsigned int nveths,
 
         DEBUG("Renaming %s to %s", veths[i], newname);
         rc = setInterfaceName(veths[i], newname);
-        if (0 != rc)
+        if (0 != rc) {
+            VIR_ERROR(_("Failed to rename %s to %s (%d)"),
+                      veths[i], newname, rc);
+            rc = -1;
             goto error_out;
+        }
 
         DEBUG("Enabling %s", newname);
-        rc =  vethInterfaceUpOrDown(newname, 1);
-        if (0 != rc)
+        rc = vethInterfaceUpOrDown(newname, 1);
+        if (0 != rc) {
+            VIR_ERROR(_("Failed to enable %s (%d)"), newname, rc);
+            rc = -1;
             goto error_out;
+        }
         VIR_FREE(newname);
     }
 
-- 
1.6.5.2




More information about the libvir-list mailing list