From 4b670f86886b81c08b1343a2e54a41005779833b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 12 Nov 2018 13:31:03 +0100 Subject: [PATCH 1/2] hostnamed,localed,timedate: properly propagate errors from sd_event_add_signal() main() can't doesn't expect negative error codes as return. --- src/hostname/hostnamed.c | 12 ++++++++---- src/locale/localed.c | 12 ++++++++---- src/timedate/timedated.c | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 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/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) From 83a433391982d5ac28a97723a74f68828a22a05b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 12 Nov 2018 13:31:53 +0100 Subject: [PATCH 2/2] journal-remote: log about inability to install signals --- src/journal-remote/journal-remote-main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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)