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

David Nystrom david.c.nystrom at gmail.com
Mon Feb 10 11:10:50 PST 2014


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.

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-virtualization/attachments/20140210/69553a6e/attachment.html>


More information about the meta-virtualization mailing list