Unverified Commit 2f6c8368 by Tycho Andersen Committed by Christian Brauner

execute: set init_path when existing init is found

I'm not really sure we should be looking in the rootfs for an existing init, but I'll send a much more invasive patch to correct that. For now, let's just make sure we set init_path when we find one, so that later in execute_start() we don't bail. Signed-off-by: 's avatarTycho Andersen <tycho@tycho.ws>
parent 7ccdf146
......@@ -3213,8 +3213,15 @@ static int lxc_execute_bind_init(struct lxc_handler *handler)
/* If init exists in the container, don't bind mount a static one */
p = choose_init(conf->rootfs.mount);
if (p) {
free(p);
return 0;
char *old = p;
p = strdup(old + strlen(conf->rootfs.mount));
free(old);
if (!p)
return -ENOMEM;
INFO("Found existing init at \"%s\"", p);
goto out;
}
ret = snprintf(path, PATH_MAX, SBINDIR "/init.lxc.static");
......@@ -3247,9 +3254,10 @@ static int lxc_execute_bind_init(struct lxc_handler *handler)
p = strdup(destpath + strlen(conf->rootfs.mount));
if (!p)
return -ENOMEM;
((struct execute_args *)handler->data)->init_path = p;
INFO("Bind mounted lxc.init.static into container at \"%s\"", path);
out:
((struct execute_args *)handler->data)->init_path = p;
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment