lxcContainerRenameAndEnableInterfaces() isn't making a copy of the
interface's ifname_guest (into newname), it's just copying the pointer
to it. This means that when it later calls VIR_FREE(newname), it's
actually freeing up (and fortunately NULLing out, so at least we don't
try to access free'd memory) netDef->ifname_guest.
---
src/lxc/lxc_container.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 531bbd5..3d9e28b 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -490,7 +490,7 @@ static int lxcContainerRenameAndEnableInterfaces(virDomainDefPtr
vmDef,
{
int rc = 0;
size_t i, j;
- char *newname = NULL;
+ const char *newname;
char *toStr = NULL;
char *viaStr = NULL;
virDomainNetDefPtr netDef;
@@ -552,8 +552,6 @@ static int lxcContainerRenameAndEnableInterfaces(virDomainDefPtr
vmDef,
VIR_FREE(viaStr);
}
}
-
- VIR_FREE(newname);
}
/* enable lo device only if there were other net devices */
@@ -563,7 +561,6 @@ static int lxcContainerRenameAndEnableInterfaces(virDomainDefPtr
vmDef,
error_out:
VIR_FREE(toStr);
VIR_FREE(viaStr);
- VIR_FREE(newname);
return rc;
}
--
2.5.5