diff options
author | Lennart Poettering <lennart@poettering.net> | 2017-09-13 10:35:28 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2017-09-13 10:35:28 +0200 |
commit | 0b0f1f6bc9447ad0d8abad941e384868b2932828 (patch) | |
tree | 98019f38723dd06effba05ac6f4d3d54795b4bfe /src/shared/pager.c | |
parent | 351eb5dc200ace8bc0b06fafb99a2934c35058d8 (diff) |
pager: let's create pager fds with O_CLOEXEC first
We make copies (without O_CLOEXEC) of the fds anyway before using them,
hence let's be safe and create them with O_CLOEXEC first, so that we
don't run into issues should pager_open() be called in a threaded
environment where another thread fork()s at the wrong time and ends up
with fds not marked O_CLOEXEC.
Diffstat (limited to 'src/shared/pager.c')
-rw-r--r-- | src/shared/pager.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/shared/pager.c b/src/shared/pager.c index 2c855bd8f..ce0f37066 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -84,7 +84,7 @@ int pager_open(bool no_pager, bool jump_to_end) { * pager so that we get the value from the actual tty */ (void) columns(); - if (pipe(fd) < 0) + if (pipe2(fd, O_CLOEXEC) < 0) return log_error_errno(errno, "Failed to create pager pipe: %m"); parent_pid = getpid_cached(); |