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:
@@ -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.
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user