chiark / gitweb /
systemctl: properly parse JobNew signals
[elogind.git] / src / manager.c
index dae746cae57cff1aa54970b38a6c6dcde5720695..6ddd40e8736c1817273b2129061582eb7814f61b 100644 (file)
@@ -127,7 +127,7 @@ static int manager_setup_notify(Manager *m) {
 }
 
 static int enable_special_signals(Manager *m) {
-        char fd;
+        int fd;
 
         assert(m);
 
@@ -2059,8 +2059,6 @@ static int manager_process_signal_fd(Manager *m) {
         assert(m);
 
         for (;;) {
-                char *p = NULL;
-
                 if ((n = read(m->signal_watch.fd, &sfsi, sizeof(sfsi))) != sizeof(sfsi)) {
 
                         if (n >= 0)
@@ -2072,13 +2070,17 @@ static int manager_process_signal_fd(Manager *m) {
                         return -errno;
                 }
 
-                if (sfsi.ssi_pid > 0)
+                if (sfsi.ssi_pid > 0) {
+                        char *p = NULL;
+
                         get_process_name(sfsi.ssi_pid, &p);
 
-                log_debug("Received SIG%s from PID %lu (%s)",
-                          strna(signal_to_string(sfsi.ssi_signo)),
-                          (unsigned long) sfsi.ssi_pid, strna(p));
-                free(p);
+                        log_debug("Received SIG%s from PID %lu (%s).",
+                                  strna(signal_to_string(sfsi.ssi_signo)),
+                                  (unsigned long) sfsi.ssi_pid, strna(p));
+                        free(p);
+                } else
+                        log_debug("Received SIG%s.", strna(signal_to_string(sfsi.ssi_signo)));
 
                 switch (sfsi.ssi_signo) {