chiark / gitweb /
clients: fix some signal handler issues
authorLennart Poettering <lennart@poettering.net>
Fri, 8 Nov 2013 12:57:18 +0000 (13:57 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 8 Nov 2013 13:07:27 +0000 (14:07 +0100)
src/activate/activate.c
src/udev/udevadm-monitor.c

index 3198f7de988669d31573b28011519de2764cb3e0..07e46b9691a188d690964ef74f70e84f0ae0be94 100644 (file)
@@ -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);
index a390ee6c347c989d7f494ced6be13d58b8ce84ec..4d6af49b963a32577022618a5a12d833faef5716 100644 (file)
@@ -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);