diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-05-02 09:18:03 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-05-02 09:18:03 -0400 |
commit | 78c808b1264cbbec6c7cf4e9c4f321736a218949 (patch) | |
tree | 07dc2163a31124ce274d76de14f0f953bc598497 /src/stdio | |
parent | bd6746732536fdf2ebaadff6f98aee0879b1674d (diff) | |
download | musl-78c808b1264cbbec6c7cf4e9c4f321736a218949.tar.gz |
fix fclose return status logic, again
the previous fix was incorrect, as it would prevent f->close(f) from
being called if fflush(f) failed. i believe this was the original
motivation for using | rather than ||. so now let's just use a second
statement to constrain the order of function calls, and to back to
using |.
Diffstat (limited to 'src/stdio')
-rw-r--r-- | src/stdio/fclose.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/stdio/fclose.c b/src/stdio/fclose.c index 9481470d..ee772fbb 100644 --- a/src/stdio/fclose.c +++ b/src/stdio/fclose.c @@ -13,7 +13,8 @@ int fclose(FILE *f) OFLUNLOCK(); } - r = -(fflush(f) || f->close(f)); + r = fflush(f); + r |= f->close(f); if (!perm) free(f); |