matthewstory at gmail.com
Sat Jul 28 19:08:48 UTC 2012
On Wed, Mar 21, 2012 at 11:43 PM, Matthew Story <matthewstory at gmail.com>wrote:
> On Wed, Mar 21, 2012 at 5:45 PM, David Schultz <das at freebsd.org> wrote:
>> On Mon, Mar 12, 2012, Matthew Story wrote:
>> > On Sun, Mar 4, 2012 at 2:03 PM, John Baldwin <jhb at freebsd.org> wrote:
>> There ought to be a less ugly fix than the one proposed. Probably
>> the PRINT macro and the various other evil macros in vfprintf()
>> should set ret to EOF, and the following lines in vfprintf.c should
>> be removed:
>> if (__sferror(fp))
>> ret = EOF;
>> If vfprintf() is fixed so that printing to a buffered stream
>> always returns success after a successful write (regardless of the
>> prior state of the stream's error indicator), that should fix the
>> problem for unbuffered streams automatically. Unbuffered streams
>> go through __sbprintf(), which throws away the output if
>> vfprintf() returns -1.
> yeah ... I wasn't overly pleased with my fix as it stands. my concern was
> that the __sferror(fp) acts as a catch-all for any non-handled error case
> in the actual print logic. there are only 2 places in the function that
> explicitly set __SERR and goto error.
> i'll do a thorough audit of all potential side-effects of the above calls
> re: __SERR, and follow-up with something less butchered.
Checking back in on the status of this PR, submitted a follow-up patch per
das' suggestion in April. Any progress on getting this in?
More information about the freebsd-standards