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

Bruce Ashfield bruce.ashfield at gmail.com
Tue Feb 11 12:48:22 PST 2014


On Mon, Feb 10, 2014 at 2:10 PM, David Nystrom
<david.c.nystrom at gmail.com> wrote:
>
> On 10 Feb 2014 17:23, "Bruce Ashfield" <bruce.ashfield at gmail.com> wrote:
>>
>> On Mon, Feb 10, 2014 at 9:06 AM, David Nyström <david.nystrom at enea.com>
>> wrote:
>> > On 2014-02-10 14:09, Josep Puigdemont wrote:
>> >>
>> >> 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"
>> >>
>> >
>> > Reviewed-by: David Nyström <david.nystrom at enea.com>
>> >
>> > Minor nitpicking, please add the branch name in the subject as:
>> > [dora][PATCH]blah for future patches, unless its for master.
>>
>> Agreed. But in this case, don't we also want this on master ? The dora and
>> master version of lxc are the same, so doesn't this fix apply to both
>> branches ?
>
> Yes, you are correct.
> Misunderstanding on my behalf.

I wouldn't say that, since the patch was definitely intended for dora (with
it's context), but the reject was trivial to resolve. I did a build
test on master
and all looks fine.

So I went ahead and pushed this to dora and master.

Bruce

>
> Br,
> David
>
>> Bruce
>>
>> >
>> > Br,
>> > David
>> >
>> >
>> > _______________________________________________
>> > meta-virtualization mailing list
>> > meta-virtualization at yoctoproject.org
>> > https://lists.yoctoproject.org/listinfo/meta-virtualization
>>
>>
>>
>> --
>> "Thou shalt not follow the NULL pointer, for chaos and madness await
>> thee at its end"
>> _______________________________________________
>> meta-virtualization mailing list
>> meta-virtualization at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/meta-virtualization



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


More information about the meta-virtualization mailing list