[meta-virtualization] [PATCH] lxc: always strdup lxc.rootfs.mount

Josep Puigdemont josep.puigdemont at enea.com
Mon Feb 10 05:09:06 PST 2014


The reason is that the generic code which handles reading lxc.rootfs.mount
always frees the old value if not NULL. So without this setting
lxc.rootfs.mount = /mnt causes segfault.

This is a backport for lxc-0.9.0 (dora) of the same fix found in
upstream's master, see commits 54c30e29 and 53f3f048.

Signed-off-by: Josep Puigdemont <josep.puigdemont at enea.com>
---
 .../lxc-0.9.0-always-strdup-rootfs-mount.patch     |   27 ++++++++++++++++++++
 recipes-containers/lxc/lxc_0.9.0.bb                |    1 +
 2 files changed, 28 insertions(+)
 create mode 100644 recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch

diff --git a/recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch b/recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch
new file mode 100644
index 0000000..3e299d2
--- /dev/null
+++ b/recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch
@@ -0,0 +1,27 @@
+diff --git a/src/lxc/conf.c b/src/lxc/conf.c
+index 6b3f318..2f8b9e6 100644
+--- a/src/lxc/conf.c
++++ b/src/lxc/conf.c
+@@ -2072,7 +2072,12 @@ struct lxc_conf *lxc_conf_init(void)
+ 	new->console.slave = -1;
+ 	new->console.name[0] = '\0';
+ 	new->maincmd_fd = -1;
+-	new->rootfs.mount = default_rootfs_mount;
++	new->rootfs.mount = strdup(default_rootfs_mount);
++	if (!new->rootfs.mount) {
++		ERROR("lxc_conf_init : %m");
++		free(new);
++		return NULL;
++	}
+ 	new->kmsg = 1;
+ 	lxc_list_init(&new->cgroup);
+ 	lxc_list_init(&new->network);
+@@ -3084,7 +3089,7 @@ void lxc_conf_free(struct lxc_conf *conf)
+ 		return;
+ 	if (conf->console.path)
+ 		free(conf->console.path);
+-	if (conf->rootfs.mount != default_rootfs_mount)
++	if (conf->rootfs.mount)
+ 		free(conf->rootfs.mount);
+ 	if (conf->rootfs.path)
+ 		free(conf->rootfs.path);
diff --git a/recipes-containers/lxc/lxc_0.9.0.bb b/recipes-containers/lxc/lxc_0.9.0.bb
index 8f7736b..fceefff 100644
--- a/recipes-containers/lxc/lxc_0.9.0.bb
+++ b/recipes-containers/lxc/lxc_0.9.0.bb
@@ -26,6 +26,7 @@ SRC_URI = "http://linuxcontainers.org/downloads/${PN}-${PV}.tar.gz \
 	file://lxc-0.9.0-enable-chroot-chpasswd-functionality-for-busybox-hosts.patch \
     file://lxc-0.9.0-check-when-bind-mounting-libdirs.patch \
     file://lxc-0.9.0-don-t-let-LXC_PATH-end-in-failure.patch \
+    file://lxc-0.9.0-always-strdup-rootfs-mount.patch \
 	"
 SRC_URI[md5sum] = "8552a4479090616f4bc04d8473765fc9"
 SRC_URI[sha256sum] = "1e1767eae6cc5fbf892c0e193d25da420ba19f2db203716c38f7cdea3b654120"
-- 
1.7.10.4



More information about the meta-virtualization mailing list