* pex-unix.c (pex_child_error): Improve warning avoidance by
checking the results of write(3) and exiting with -2 if any write returns a negative value.
This commit is contained in:
parent
197fa1aa2c
commit
c90188f694
2 changed files with 11 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2009-11-23 Ben Elliston <bje@au.ibm.com>
|
||||||
|
Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
* pex-unix.c (pex_child_error): Improve warning avoidance by
|
||||||
|
checking the results of write(3) and exiting with -2 if any write
|
||||||
|
returns a negative value.
|
||||||
|
|
||||||
2009-11-22 Steve Ward <planet36@gmail.com>
|
2009-11-22 Steve Ward <planet36@gmail.com>
|
||||||
|
|
||||||
* dyn-string.c (dyn_string_append_char): Fix typo in comment.
|
* dyn-string.c (dyn_string_append_char): Fix typo in comment.
|
||||||
|
|
|
@ -368,7 +368,8 @@ static void
|
||||||
pex_child_error (struct pex_obj *obj, const char *executable,
|
pex_child_error (struct pex_obj *obj, const char *executable,
|
||||||
const char *errmsg, int err)
|
const char *errmsg, int err)
|
||||||
{
|
{
|
||||||
#define writeerr(s) if (write (STDERR_FILE_NO, s, strlen (s))) {}
|
int retval = 0;
|
||||||
|
#define writeerr(s) retval |= (write (STDERR_FILE_NO, s, strlen (s)) < 0)
|
||||||
writeerr (obj->pname);
|
writeerr (obj->pname);
|
||||||
writeerr (": error trying to exec '");
|
writeerr (": error trying to exec '");
|
||||||
writeerr (executable);
|
writeerr (executable);
|
||||||
|
@ -378,7 +379,8 @@ pex_child_error (struct pex_obj *obj, const char *executable,
|
||||||
writeerr (xstrerror (err));
|
writeerr (xstrerror (err));
|
||||||
writeerr ("\n");
|
writeerr ("\n");
|
||||||
#undef writeerr
|
#undef writeerr
|
||||||
_exit (-1);
|
/* Exit with -2 if the error output failed, too. */
|
||||||
|
_exit (retval == 0 ? -1 : -2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Execute a child. */
|
/* Execute a child. */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue