diff options
author | Josep Puigdemont <josep.puigdemont@enea.com> | 2014-02-10 14:09:06 +0100 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2014-02-11 14:27:43 -0500 |
commit | 7d7c38165c1a5a192f114afaea1ee2d80fb784dd (patch) | |
tree | 04b7d513e255a02f8deafdf795821c0bb765ea64 /recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch | |
parent | 7e688758401f765bfc217ae12d5bd54222b3dca0 (diff) | |
download | meta-virtualization-dora.tar.gz |
lxc: always strdup lxc.rootfs.mountdora
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@enea.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch')
-rw-r--r-- | recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch | 27 |
1 files changed, 27 insertions, 0 deletions
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 00000000..3e299d2f --- /dev/null +++ b/recipes-containers/lxc/files/lxc-0.9.0-always-strdup-rootfs-mount.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | diff --git a/src/lxc/conf.c b/src/lxc/conf.c | ||
2 | index 6b3f318..2f8b9e6 100644 | ||
3 | --- a/src/lxc/conf.c | ||
4 | +++ b/src/lxc/conf.c | ||
5 | @@ -2072,7 +2072,12 @@ struct lxc_conf *lxc_conf_init(void) | ||
6 | new->console.slave = -1; | ||
7 | new->console.name[0] = '\0'; | ||
8 | new->maincmd_fd = -1; | ||
9 | - new->rootfs.mount = default_rootfs_mount; | ||
10 | + new->rootfs.mount = strdup(default_rootfs_mount); | ||
11 | + if (!new->rootfs.mount) { | ||
12 | + ERROR("lxc_conf_init : %m"); | ||
13 | + free(new); | ||
14 | + return NULL; | ||
15 | + } | ||
16 | new->kmsg = 1; | ||
17 | lxc_list_init(&new->cgroup); | ||
18 | lxc_list_init(&new->network); | ||
19 | @@ -3084,7 +3089,7 @@ void lxc_conf_free(struct lxc_conf *conf) | ||
20 | return; | ||
21 | if (conf->console.path) | ||
22 | free(conf->console.path); | ||
23 | - if (conf->rootfs.mount != default_rootfs_mount) | ||
24 | + if (conf->rootfs.mount) | ||
25 | free(conf->rootfs.mount); | ||
26 | if (conf->rootfs.path) | ||
27 | free(conf->rootfs.path); | ||