This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Sticky EOF breaks stream concatenation via dup2 [BZ #23636]
- From: Florian Weimer <fweimer at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 20 Sep 2018 14:28:13 +0200
- Subject: Re: Sticky EOF breaks stream concatenation via dup2 [BZ #23636]
- References: <a59cd33b-501b-d78b-e7a8-de29003cbc83@redhat.com>
* Florian Weimer:
> Do we have to revert the fix fpr bug 1190 (which introduces sticky EOF
> for stdio streams)?
>
> We received a bug report that cups-filters is quite broken due to this
The upstream bug: <https://github.com/OpenPrinting/cups-filters/issues/58>
> change, and while reviewing the libio sources, I found evidence that
> what cups-filters does (dup2-ing another descriptor after EOF) was
> once considered supported (in _IO_new_file_underflow):
>
> fp->_IO_read_end += count;
> if (count == 0)
> {
> /* If a stream is read to EOF, the calling application may
> switch active
> handles. As a result, our offset cache would no longer be valid, so
> unset it. */
> fp->_offset = _IO_pos_BAD;
> return EOF;
> }
>
> Usually, when our own testing finds bugs, that's that's just a small
> subset of what the larger user community (many of whom cannot
> recompile their applications) will experience once they upgrade, so
> I'm quite worried about the implications of the fix for bug 1190.
Folks,
do I read the emerging consensus correctly as the following?
glibc should not change (e.g., revert the fix for bug 1190) to paper
over application bugs such as the bug in cups-filters. Applications
need to be fixed instead. End users whose applications cannot be fixed
should keep with previous glibc versions.
Thanks,
Florian