Skip to content

Commit

Permalink
execute: set init_path when existing init is found
Browse files Browse the repository at this point in the history
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: Tycho Andersen <tycho@tycho.ws>
  • Loading branch information
tych0 authored and Christian Brauner committed May 12, 2018
1 parent 7ccdf14 commit 2f6c836
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/lxc/conf.c
Expand Up @@ -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");
Expand Down Expand Up @@ -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;
}

Expand Down

0 comments on commit 2f6c836

Please sign in to comment.