fix failure to flush stderr when fflush(0) is called

commit ddc947eda3 fixed the
corresponding bug for exit which was introduced when commit
0b80a7b040 added support for
caller-provided buffers, making it possible for stderr to be a
buffered stream.
This commit is contained in:
Rich Felker 2018-11-02 12:52:56 -04:00
parent 4a08603026
commit 79f653c6bc
1 changed files with 4 additions and 1 deletions

View File

@ -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);