1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-16 20:33:18 +02:00

* pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE ->

HAVE_PIPE.  Fix a file descriptor leak when fd_safer fails.
This commit is contained in:
Paul Eggert
2006-08-11 20:28:42 +00:00
parent 80886a8db3
commit 3244e9a493
2 changed files with 23 additions and 18 deletions

View File

@@ -1,5 +1,8 @@
2006-08-11 Paul Eggert <eggert@cs.ucla.edu>
* pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE ->
HAVE_PIPE. Fix a file descriptor leak when fd_safer fails.
* regex_internal.c (re_string_skip_chars): Don't assume WEOF fits
in wchar_t. Problem reported by Eric Blake.

View File

@@ -33,25 +33,27 @@
int
pipe_safer (int fd[2])
{
#if HAVE_FUNC_PIPE
int fail = pipe (fd);
if (fail)
return fail;
#if HAVE_PIPE
if (pipe (fd) == 0)
{
int i;
for (i = 0; i < 2; i++)
{
fd[i] = fd_safer (fd[i]);
if (fd[i] < 0)
{
int e = errno;
close (fd[1 - i]);
errno = e;
return -1;
}
}
{
int i;
for (i = 0; i < 2; i++)
{
int f = fd_safer (fd[i]);
if (f < 0)
return -1;
fd[i] = f;
}
}
return 0;
#else /* ! HAVE_FUNC_PIPE */
return 0;
}
#else
errno = ENOSYS;
return -1;
#endif
return -1;
}