On 05/03/17 09:56, Pedro Giffuni wrote:
...
Grepping for fputs in /usr/src shows too many instances to check (mostly
without any error handling). The simplest filter 'if (fputs' found the
dependency on the old FreeBSD behaviour in csplit and 2 other places:
contrib/mdocml/main.c: if (fputs(cp, stdout)) {
contrib/mdocml/main.c- fclose(stream);
I can't find the above on the version in FreeBSD-current (or 11-stable).
contrib/libreadline/examples/rlcat.c: if (fputs (x, stdout) != 0)
contrib/libreadline/examples/rlcat.c- return 1;
This is an example so it's luckily not under use. Hopefully libreadline is
going away from base but it's still important to report this upstream
(will do).
More complicated filters like 'if ([^(]]*[^a-z_]fputs' failed to find
any problems since I messed up the regexp.
I admittedly ignored contrib, plus I only skimmed for comparisons to
zero.
Now I am worried: the classic BSD implementation is ubiquitous and
this bug
is not easy to find, particularly in ports.
I went though the OpenOffice code, and it's dependencies, and I couldn't
find any
place where a similar issue happens. I did find several places where
there was a
correct comparison to EOF or >=0, but the vast majority of code just
call fputs()
without checking the return value.
Do you guys think it we should revert to the previous behavior, at
least for 11.1?
The bugs should be reported upstream but it is not really our battle
to fix the world
for Apple is it?
It seems like most code may have already adapted to the Apple variant.
Pedro.
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"