summaryrefslogtreecommitdiff
path: root/src/shared/exec-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-02 15:50:55 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2021-11-03 23:05:26 +0000
commitaedec452b9e5dd197881f2164fb205dfe8bfdcec (patch)
tree551d116509319e98aa5f4a6e4f792a95af7c38bf /src/shared/exec-util.c
parent829b86bc0fa2b6bf68ee90b33b0382b71f96f6f6 (diff)
downloadsystemd-aedec452b9e5dd197881f2164fb205dfe8bfdcec.tar.gz
tree-wide: always use TAKE_FD() when calling rearrange_stdio()
rearrange_stdio() invalidates specified fds even on failure, which means we should always invalidate the fds we pass in no matter what. Let's make this explicit by using TAKE_FD() for that everywhere. Note that in many places we such invalidation doesnt get us much behaviour-wise, since we don't use the variables anymore later. But TAKE_FD() in a way is also documentation, it encodes explicitly that the fds are invalidated here, so I think it's a good thing to always make this explicit here.
Diffstat (limited to 'src/shared/exec-util.c')
-rw-r--r--src/shared/exec-util.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/shared/exec-util.c b/src/shared/exec-util.c
index f0a9ea9e9f..b93de9c922 100644
--- a/src/shared/exec-util.c
+++ b/src/shared/exec-util.c
@@ -50,7 +50,7 @@ static int do_spawn(const char *path, char *argv[], int stdout_fd, pid_t *pid, b
char *_argv[2];
if (stdout_fd >= 0) {
- r = rearrange_stdio(STDIN_FILENO, stdout_fd, STDERR_FILENO);
+ r = rearrange_stdio(STDIN_FILENO, TAKE_FD(stdout_fd), STDERR_FILENO);
if (r < 0)
_exit(EXIT_FAILURE);
}