Safety cleanups: ensure OUTFD is -1 when closed.

This commit is contained in:
Paul Smith 2013-07-21 16:55:40 -04:00
parent f80222c15b
commit 72462ef1e1
2 changed files with 15 additions and 6 deletions

View file

@ -1,3 +1,9 @@
2013-07-21 Paul Smith <psmith@gnu.org>
* job.c (assign_child_tempfiles): Assign OUTFD to -1 for safety.
(start_job_command): Don't test output_sync and sync_cmd: redundant.
Changes suggested by Frank Heckenbach <f.heckenbach@fh-soft.de>.
2013-07-14 Paul Smith <psmith@gnu.org>
* filedef.h (update_status): Convert UPDATE_STATUS from a char to

13
job.c
View file

@ -687,7 +687,10 @@ assign_child_tempfiles (struct child *c)
error:
if (c->outfd >= 0)
{
close (c->outfd);
c->outfd = -1;
}
output_sync = 0;
}
@ -700,8 +703,8 @@ pump_from_tmp (int from, FILE *to)
#ifdef WINDOWS32
int prev_mode;
/* from_fd is opened by open_tmpfd, which does it in binary mode, so
we need the mode of to_fd to match that. */
/* "from" is opened by open_tmpfd, which does it in binary mode, so
we need the mode of "to" to match that. */
prev_mode = _setmode (fileno (to), _O_BINARY);
#endif
@ -721,7 +724,7 @@ pump_from_tmp (int from, FILE *to)
}
#ifdef WINDOWS32
/* Switch to_fd back to its original mode, so that log messages by
/* Switch "to" back to its original mode, so that log messages by
Make have the same EOL format as without --output-sync. */
_setmode (fileno (to), prev_mode);
#endif
@ -1753,7 +1756,7 @@ start_job_command (struct child *child)
#ifdef OUTPUT_SYNC
/* Divert child output if output_sync in use. Don't capture
recursive make output unless we are synchronizing "make" mode. */
if (output_sync && sync_cmd)
if (sync_cmd)
{
int outfd = fileno (stdout);
int errfd = fileno (stderr);
@ -1866,7 +1869,7 @@ start_job_command (struct child *child)
#ifdef OUTPUT_SYNC
/* Divert child output if output_sync in use. Don't capture
recursive make output unless we are synchronizing "make" mode. */
if (output_sync && sync_cmd)
if (sync_cmd)
hPID = process_easy (argv, child->environment,
child->outfd, child->errfd);
else