From 7cfc65cbfb5fb2e06710cab0d5008a0643735d49 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 24 Dec 2017 00:54:40 +0100 Subject: [PATCH] terminal-util: open /dev/null with O_CLOEXEC in make_stdio_null() Ultimately, O_CLOEXEC should be off in fd 0, 1, 2, but when we open /dev/null here it's unlikely to be < 0, and after dupping the fd to 0, 1, 2 we turn off O_CLOEXEC explicitly anyway. Unless we know that what we are about to open will return 0, 1 or 2 we should always set O_CLOEXEC in order to be safe to other threads forking of subprocesses at the wrong moment. --- src/basic/terminal-util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c index 3ece0697f..c67b34073 100644 --- a/src/basic/terminal-util.c +++ b/src/basic/terminal-util.c @@ -910,7 +910,7 @@ int make_stdio(int fd) { int make_null_stdio(void) { int null_fd; - null_fd = open("/dev/null", O_RDWR|O_NOCTTY); + null_fd = open("/dev/null", O_RDWR|O_NOCTTY|O_CLOEXEC); if (null_fd < 0) return -errno; -- 2.30.2