From: Tycho Andersen Date: Fri, 19 Jan 2018 00:50:39 +0000 (+0000) Subject: start: don't log stop/continue for non-init processes X-Git-Tag: lxc-2.0.10~404 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e511590f2ad45325f9b9e0b37cffff8e9f0ea6e;p=thirdparty%2Flxc.git start: don't log stop/continue for non-init processes This non-init forwarding check should really be before all the log messages about "init continued" or "init stopped", since they will otherwise lie about some process that wasn't init being stopped or continued. Signed-off-by: Tycho Andersen --- diff --git a/src/lxc/start.c b/src/lxc/start.c index 855de4bf4..e23467f48 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -314,6 +314,14 @@ static int signal_handler(int fd, uint32_t events, void *data, if (ret == 0 && info.si_pid == hdlr->pid) hdlr->init_died = true; + /* More robustness, protect ourself from a SIGCHLD sent + * by a process different from the container init. + */ + if (siginfo.ssi_pid != hdlr->pid) { + NOTICE("Received %d from pid %d instead of container init %d.", siginfo.ssi_signo, siginfo.ssi_pid, hdlr->pid); + return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0; + } + if (siginfo.ssi_signo != SIGCHLD) { kill(hdlr->pid, siginfo.ssi_signo); INFO("Forwarded signal %d to pid %d.", siginfo.ssi_signo, hdlr->pid); @@ -328,14 +336,6 @@ static int signal_handler(int fd, uint32_t events, void *data, return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0; } - /* More robustness, protect ourself from a SIGCHLD sent - * by a process different from the container init. - */ - if (siginfo.ssi_pid != hdlr->pid) { - NOTICE("Received SIGCHLD from pid %d instead of container init %d.", siginfo.ssi_pid, hdlr->pid); - return hdlr->init_died ? LXC_MAINLOOP_CLOSE : 0; - } - DEBUG("Container init process %d exited.", hdlr->pid); return LXC_MAINLOOP_CLOSE; }