]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
lxc: Fix failure on starting a domain with multiple interfaces
authorRyota Ozaki <ozaki.ryota@gmail.com>
Mon, 3 May 2010 09:13:26 +0000 (11:13 +0200)
committerDaniel Veillard <veillard@redhat.com>
Mon, 3 May 2010 09:13:26 +0000 (11:13 +0200)
[Error message]
error: Failed to start domain lxc_test1
error: internal error Failed to create veth device pair: 512

The reason of the failure is that lxc driver unexpectedly re-uses
an auto-assigned veth name and tries to create the created veth
again. The failure will happen when a domain has multiple network
interfaces and the names of those are not specified in XML.

The patch fixes the problem by resetting buffers of veth names
in every iteration of creating veth.

* src/lxc/lxc_driver.c: prevent re-using auto-assigned veth name
  Reported by Kumar L Srikanth-B22348.

src/lxc/lxc_driver.c

index 409b1cff426daabd6c5f2e88a83b180e8ebc7e8f..554bf667e917470f9c0d09178ce5a2794f744d0e 100644 (file)
@@ -786,14 +786,15 @@ static int lxcSetupInterfaces(virConnectPtr conn,
 {
     int rc = -1, i;
     char *bridge = NULL;
-    char parentVeth[PATH_MAX] = "";
-    char containerVeth[PATH_MAX] = "";
     brControl *brctl = NULL;
 
     if (brInit(&brctl) != 0)
         return -1;
 
     for (i = 0 ; i < def->nnets ; i++) {
+        char parentVeth[PATH_MAX] = "";
+        char containerVeth[PATH_MAX] = "";
+
         switch (def->nets[i]->type) {
         case VIR_DOMAIN_NET_TYPE_NETWORK:
         {