include/closestream: don't wipe errno on EPIPE

... the code in close_stdout() is sensitive to EPIPE, so
wipe errno is close_stream() is probably bad idea.

Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2014-03-13 12:41:03 +01:00
parent 97c3278925
commit 422f93bfbb
1 changed files with 2 additions and 1 deletions

View File

@ -24,8 +24,9 @@ close_stream(FILE * stream)
const int some_pending = (__fpending(stream) != 0);
const int prev_fail = (ferror(stream) != 0);
const int fclose_fail = (fclose(stream) != 0);
if (prev_fail || (fclose_fail && (some_pending || errno != EBADF))) {
if (!fclose_fail)
if (!fclose_fail && !(errno == EPIPE))
errno = 0;
return EOF;
}