Skip to content

Commit

Permalink
patch 8.0.0827: Coverity: could leak pty file descriptor
Browse files Browse the repository at this point in the history
Problem:    Coverity: could leak pty file descriptor, theoretically.
Solution:   If channel is NULL, free the file descriptors.
  • Loading branch information
brammool committed Aug 1, 2017
1 parent 662d938 commit 979e8c5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/os_unix.c
Expand Up @@ -4150,6 +4150,11 @@ set_default_child_environment(void)
#endif

#if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL)
/*
* Open a PTY, with FD for the master and slave side.
* When failing "pty_master_fd" and "pty_slave_fd" are -1.
* When successful both file descriptors are stored.
*/
static void
open_pty(int *pty_master_fd, int *pty_slave_fd)
{
Expand Down Expand Up @@ -5380,6 +5385,17 @@ mch_job_start(char **argv, job_T *job, jobopt_T *options)
? INVALID_FD : fd_err[0] < 0 ? pty_master_fd : fd_err[0]);
channel_set_job(channel, job, options);
}
else
{
if (fd_in[1] >= 0)
close(fd_in[1]);
if (fd_out[0] >= 0)
close(fd_out[0]);
if (fd_err[0] >= 0)
close(fd_err[0]);
if (pty_master_fd >= 0)
close(pty_master_fd);
}

/* success! */
return;
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -769,6 +769,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
827,
/**/
826,
/**/
Expand Down

0 comments on commit 979e8c5

Please sign in to comment.