Mercurial > vim
changeset 12200:52eea5b73b2a v8.0.0980
patch 8.0.0980: Coverity warning for failing to open /dev/null
commit https://github.com/vim/vim/commit/b109bb4e1208753cb286b39992b58126d5aa4ce6
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 21 21:07:29 2017 +0200
patch 8.0.0980: Coverity warning for failing to open /dev/null
Problem: Coverity warning for failing to open /dev/null.
Solution: When /dev/null can't be opened exit the child.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 21 Aug 2017 21:15:04 +0200 |
parents | 5040c9c973c9 |
children | 62bfec550bc1 |
files | src/os_unix.c src/version.c |
diffstat | 2 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/os_unix.c +++ b/src/os_unix.c @@ -4340,6 +4340,7 @@ mch_call_shell( # define EXEC_FAILED 122 /* Exit code when shell didn't execute. Don't use 127, some shells use that already */ +# define OPEN_NULL_FAILED 123 /* Exit code if /dev/null can't be opened */ char_u *newcmd; pid_t pid; @@ -5369,7 +5370,14 @@ mch_job_start(char **argv, job_T *job, j } if (use_null_for_in || use_null_for_out || use_null_for_err) + { null_fd = open("/dev/null", O_RDWR | O_EXTRA, 0); + if (null_fd < 0) + { + perror("opening /dev/null failed"); + _exit(OPEN_NULL_FAILED); + } + } if (pty_slave_fd >= 0) {