This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Sticky EOF breaks stream concatenation via dup2 [BZ #23636]


* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]