summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-11-12 19:03:22 +0100
committerGitHub <noreply@github.com>2018-11-12 19:03:22 +0100
commit7d7c8ea9443b501f3f8c7b455d2aadc48f2ebc35 (patch)
tree78f47bbd3217ea609eff5c1c25990ae109f12ef7
parent3ca9940cb95cb263c6bfe5cfee72df232fe46a94 (diff)
parent83a433391982d5ac28a97723a74f68828a22a05b (diff)
downloadsystemd-7d7c8ea9443b501f3f8c7b455d2aadc48f2ebc35.tar.gz
Merge pull request #10741 from poettering/signal-check
propeperly handle sd_event_add_signal() errors
-rw-r--r--src/hostname/hostnamed.c12
-rw-r--r--src/journal-remote/journal-remote-main.c4
-rw-r--r--src/locale/localed.c12
-rw-r--r--src/timedate/timedated.c12
4 files changed, 27 insertions, 13 deletions
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
index d8074e6f5f..a0535070b3 100644
--- a/src/hostname/hostnamed.c
+++ b/src/hostname/hostnamed.c
@@ -732,12 +732,16 @@ int main(int argc, char *argv[]) {
(void) sd_event_set_watchdog(event, true);
r = sd_event_add_signal(event, NULL, SIGINT, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGINT handler: %m");
+ goto finish;
+ }
r = sd_event_add_signal(event, NULL, SIGTERM, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGTERM handler: %m");
+ goto finish;
+ }
r = connect_bus(&context, event, &bus);
if (r < 0)
diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
index 76e7af28bf..930871b13b 100644
--- a/src/journal-remote/journal-remote-main.c
+++ b/src/journal-remote/journal-remote-main.c
@@ -560,7 +560,9 @@ static int create_remoteserver(
if (r < 0)
return r;
- setup_signals(s);
+ r = setup_signals(s);
+ if (r < 0)
+ return log_error_errno(r, "Failed to set up signals: %m");
n = sd_listen_fds(true);
if (n < 0)
diff --git a/src/locale/localed.c b/src/locale/localed.c
index 1f0c3ac74f..c949fa3831 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -751,12 +751,16 @@ int main(int argc, char *argv[]) {
(void) sd_event_set_watchdog(event, true);
r = sd_event_add_signal(event, NULL, SIGINT, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGINT handler: %m");
+ goto finish;
+ }
r = sd_event_add_signal(event, NULL, SIGTERM, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGTERM handler: %m");
+ goto finish;
+ }
r = connect_bus(&context, event, &bus);
if (r < 0)
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index 8cf5e8d48d..71f2f6f69b 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -987,12 +987,16 @@ int main(int argc, char *argv[]) {
(void) sd_event_set_watchdog(event, true);
r = sd_event_add_signal(event, NULL, SIGINT, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGINT handler: %m");
+ goto finish;
+ }
r = sd_event_add_signal(event, NULL, SIGTERM, NULL, NULL);
- if (r < 0)
- return r;
+ if (r < 0) {
+ log_error_errno(r, "Failed to install SIGTERM handler: %m");
+ goto finish;
+ }
r = connect_bus(&context, event, &bus);
if (r < 0)