From 79f653c6bc2881dd6855299c908a442f56cb7c2b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 2 Nov 2018 12:52:56 -0400 Subject: [PATCH] fix failure to flush stderr when fflush(0) is called commit ddc947eda311331959c73dbc4491afcfe2326346 fixed the corresponding bug for exit which was introduced when commit 0b80a7b0404b6e49b0b724e3e3fe0ed5af3b08ef added support for caller-provided buffers, making it possible for stderr to be a buffered stream. --- src/stdio/fflush.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/stdio/fflush.c b/src/stdio/fflush.c index 02dae27a..b0094376 100644 --- a/src/stdio/fflush.c +++ b/src/stdio/fflush.c @@ -3,11 +3,14 @@ /* stdout.c will override this if linked */ static FILE *volatile dummy = 0; weak_alias(dummy, __stdout_used); +weak_alias(dummy, __stderr_used); int fflush(FILE *f) { if (!f) { - int r = __stdout_used ? fflush(__stdout_used) : 0; + int r = 0; + if (__stdout_used) r |= fflush(__stdout_used); + if (__stderr_used) r |= fflush(__stderr_used); for (f=*__ofl_lock(); f; f=f->next) { FLOCK(f); -- GitLab