From: Lennart Poettering Date: Fri, 8 Nov 2013 12:57:18 +0000 (+0100) Subject: clients: fix some signal handler issues X-Git-Tag: v209~1516 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9d458c0902cdc5d993fd2f78d36fb83a8130c81b;p=elogind.git clients: fix some signal handler issues --- diff --git a/src/activate/activate.c b/src/activate/activate.c index 3198f7de9..07e46b969 100644 --- a/src/activate/activate.c +++ b/src/activate/activate.c @@ -262,6 +262,8 @@ static int do_accept(const char* name, char **argv, char **envp, int fd) { /* SIGCHLD handler. */ static void sigchld_hdl(int sig, siginfo_t *t, void *data) { + PROTECT_ERRNO; + log_info("Child %d died with code %d", t->si_pid, t->si_status); /* Wait for a dead child. */ waitpid(t->si_pid, NULL, 0); diff --git a/src/udev/udevadm-monitor.c b/src/udev/udevadm-monitor.c index a390ee6c3..4d6af49b9 100644 --- a/src/udev/udevadm-monitor.c +++ b/src/udev/udevadm-monitor.c @@ -66,7 +66,7 @@ static void print_device(struct udev_device *device, const char *source, int pro static int adm_monitor(struct udev *udev, int argc, char *argv[]) { - struct sigaction act; + struct sigaction act = {}; sigset_t mask; int option; bool prop = false; @@ -149,9 +149,7 @@ static int adm_monitor(struct udev *udev, int argc, char *argv[]) } /* set signal handlers */ - memset(&act, 0x00, sizeof(struct sigaction)); act.sa_handler = sig_handler; - sigemptyset(&act.sa_mask); act.sa_flags = SA_RESTART; sigaction(SIGINT, &act, NULL); sigaction(SIGTERM, &act, NULL);