>From signal(2) The behavior of signal() varies across UNIX versions, and has also var‐ ied historically across different versions of Linux. Avoid its use: use sigaction(2) instead. See Portability below. Replaced signal() with sigaction() in daemon.c child_handler() Signed-off-by: Jeremiah Mahler <jmmahler@xxxxxxxxx> --- daemon.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/daemon.c b/daemon.c index 78c4a1c..3c48dc0 100644 --- a/daemon.c +++ b/daemon.c @@ -791,12 +791,15 @@ static void handle(int incoming, struct sockaddr *addr, socklen_t addrlen) static void child_handler(int signo) { + struct sigaction sa; /* * Otherwise empty handler because systemcalls will get interrupted * upon signal receipt * SysV needs the handler to be rearmed */ - signal(SIGCHLD, child_handler); + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = child_handler; + sigaction(SIGCHLD, &sa, 0); } static int set_reuse_addr(int sockfd) -- 2.0.0.rc4.6.g127602c -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html