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"

Reply via email to