]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
terminal-util: open /dev/null with O_CLOEXEC in make_stdio_null()
authorLennart Poettering <lennart@poettering.net>
Sat, 23 Dec 2017 23:54:40 +0000 (00:54 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Dec 2017 10:48:21 +0000 (11:48 +0100)
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

index 4d849981890c3b087533b9352c43a7a940bb41dc..6051daf5bb54b4c80919f21c7001089daaf8c99b 100644 (file)
@@ -898,7 +898,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;