From 7acf581a58ba7d4efa65b86f5a94f00a993b16a8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 15 Mar 2019 15:35:49 +0100 Subject: [PATCH] Handle or voidify all calls to close_all_fds() In activate, it is important that we close the fds. In other cases, meh. --- src/activate/activate.c | 4 +++- src/basic/process-util.c | 2 +- src/nspawn/nspawn-setuid.c | 2 +- src/nspawn/nspawn-stub-pid1.c | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/activate/activate.c b/src/activate/activate.c index 7eae9e22c28..35ab08f22d8 100644 --- a/src/activate/activate.c +++ b/src/activate/activate.c @@ -74,7 +74,9 @@ static int open_sockets(int *epoll_fd, bool accept) { except[fd] = fd; log_close(); - close_all_fds(except, 3 + n); + r = close_all_fds(except, 3 + n); + if (r < 0) + return log_error_errno(r, "Failed to close all file descriptors: %m"); } /** Note: we leak some fd's on error here. I doesn't matter diff --git a/src/basic/process-util.c b/src/basic/process-util.c index 86d5c3adb5e..c41a2aa5c9f 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -1001,7 +1001,7 @@ _noreturn_ void freeze(void) { log_close(); /* Make sure nobody waits for us on a socket anymore */ - close_all_fds(NULL, 0); + (void) close_all_fds(NULL, 0); sync(); diff --git a/src/nspawn/nspawn-setuid.c b/src/nspawn/nspawn-setuid.c index 0026e4e3fc7..f207bcec04e 100644 --- a/src/nspawn/nspawn-setuid.c +++ b/src/nspawn/nspawn-setuid.c @@ -43,7 +43,7 @@ static int spawn_getent(const char *database, const char *key, pid_t *rpid) { if (rearrange_stdio(-1, pipe_fds[1], -1) < 0) _exit(EXIT_FAILURE); - close_all_fds(NULL, 0); + (void) close_all_fds(NULL, 0); (void) rlimit_nofile_safe(); diff --git a/src/nspawn/nspawn-stub-pid1.c b/src/nspawn/nspawn-stub-pid1.c index 5d17df39d9c..ebf4f0f523c 100644 --- a/src/nspawn/nspawn-stub-pid1.c +++ b/src/nspawn/nspawn-stub-pid1.c @@ -67,7 +67,7 @@ int stub_pid1(sd_id128_t uuid) { reset_all_signal_handlers(); log_close(); - close_all_fds(NULL, 0); + (void) close_all_fds(NULL, 0); log_open(); /* Flush out /proc/self/environ, so that we don't leak the environment from the host into the container. Also, -- 2.47.3