[libvirt] [PATCH] LXC: Ensure the init task of container comes from container

Richard Weinberger richard at sigma-star.at
Fri Jun 14 06:48:51 UTC 2013


Am 14.06.2013 07:54, schrieb Gao feng:
> Richard found libvirt_lxc execs the lxc init programs within
> the wrong rootfs context, we should run this init task from
> the rootfs of container.
>
> So chroot to the root directory of container, Make sure
> libvirt_lxc execs the right lxc init program.
>
> Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
> ---
>   src/lxc/lxc_container.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index 181f6c8..4edff15 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -645,8 +645,9 @@ static int lxcContainerPivotRoot(virDomainFSDefPtr root)
>           goto err;
>       }
>
> -    /* CWD is undefined after pivot_root, so go to / */
> -    if (chdir("/") < 0)
> +    /* CWD is undefined after pivot_root, so go to /,
> +     * and chroot to the new root directroy */
> +    if (chdir("/") < 0 || chroot(".") < 0)
>           goto err;

Hmm, that looks fishy to me.
We never have to do a chroot(".") after pivot_root().

Thanks,
//richard




More information about the libvir-list mailing list