summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/closeout.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/closeout.c b/lib/closeout.c
index aee1fcbba..0c78b6e4c 100644
--- a/lib/closeout.c
+++ b/lib/closeout.c
@@ -94,7 +94,9 @@ close_stdout_status (int status)
{
int e = ferror (stdout) ? 0 : -1;
- if (__fpending (stdout) == 0)
+ /* If the stream's error bit is clear and there is nothing to flush,
+ then return right away. */
+ if (e && __fpending (stdout) == 0)
return;
if (fclose (stdout) != 0)