From: Paul Smith Date: Mon, 24 Oct 2022 04:48:10 +0000 (-0400) Subject: * src/output.c (_outputs): Don't use invalid output sync FDs X-Git-Tag: 4.3.92~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=41c35f2ffe58a5b90b63256a199d674696f8a743;p=thirdparty%2Fmake.git * src/output.c (_outputs): Don't use invalid output sync FDs Just write to stdout/stderr in this situation. --- diff --git a/src/output.c b/src/output.c index fa13e9c3..a88f537a 100644 --- a/src/output.c +++ b/src/output.c @@ -51,20 +51,24 @@ unsigned int stdio_traced = 0; static void _outputs (struct output *out, int is_err, const char *msg) { - if (! out || ! out->syncout) - { - FILE *f = is_err ? stderr : stdout; - fputs (msg, f); - fflush (f); - } - else + FILE *f; + + if (out && out->syncout) { int fd = is_err ? out->err : out->out; - size_t len = strlen (msg); - int r; - EINTRLOOP (r, lseek (fd, 0, SEEK_END)); - writebuf (fd, msg, len); + if (fd != OUTPUT_NONE) + { + size_t len = strlen (msg); + int r; + EINTRLOOP (r, lseek (fd, 0, SEEK_END)); + writebuf (fd, msg, len); + return; + } } + + f = is_err ? stderr : stdout; + fputs (msg, f); + fflush (f); } /* Write a message indicating that we've just entered or