]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
start: don't log stop/continue for non-init processes
authorTycho Andersen <tycho@tycho.ws>
Fri, 19 Jan 2018 00:50:39 +0000 (00:50 +0000)
committerChristian Brauner <christian.brauner@ubuntu.com>
Fri, 19 Jan 2018 14:19:28 +0000 (15:19 +0100)
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 <tycho@tycho.ws>
src/lxc/start.c

index 855de4bf4c2ee9223d7a2c63ba20564a748d4967..e23467f486a2be6554fc63e89bcde31bfe8cbf1e 100644 (file)
@@ -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;
 }