gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (07/29/85)
Some time ago, I posted bug fixes for UNIX System V Release 2.0
*printf.c sources, involving changing a bogus | bit-test into an &.
I just discovered that these fixes were incomplete; there were TWO
such coding errors per source file, and I had missed the second.
For example, from fprintf.c:
/* @(#)fprintf.c 1.5 */
...
if (!(iop->_flag & _IOWRT)) { /* DAG -- bug fix (was |) */
...
if (iop->_flag & _IORW) { /* DAG -- bug fix (was |) */
...
These are in addition to the bug fixes posted by Phil Chadwick,
which I believe are correct (but I'm still looking at them).
All BRL UNIX System V emulation for 4.2BSD packages mailed before
today (not to mention real UNIX System V systems) have these bugs..gwyn@brl-tgr.ARPA (Doug Gwyn <gwyn>) (07/31/85)
I looked into Phil Chadwick's *printf() bug fixes,
which involved invoking _WRTCHK() in each *printf()
routine, and decided that they are not necessary.
My reasoning is:
*printf() call _doprnt() to do the work;
_doprnt() uses fwrite() for all output
(via PUT() and PAD() macros);
fwrite() does a _WRTCHK().
Perhaps the bugs Phil was seeing were the ones I
posted fixes for yesterday. Certainly invoking
_WRTCHK() would have straightened out the _IOWRT
bit that was being missed due to the bugs.
Summary: Use my fixes, such as:
/* @(#)fprintf.c 1.5 */
...
if (!(iop->_flag & _IOWRT)) { /* DAG -- bug fix (was |) */
...
if (iop->_flag & _IORW) { /* DAG -- bug fix (was |) */
...
and don't install any invocations of _WRTCHK().
HEY, AT&T USDL or whatever -- fix this in 5.3.0!phil@qfdts.oz (Phil Chadwick) (08/06/85)
In article <330@brl-tgr.ARPA> gwyn@brl-tgr.ARPA (Doug Gwyn) writes: >I looked into Phil Chadwick's *printf() bug fixes, >which involved invoking _WRTCHK() in each *printf() >routine, and decided that they are not necessary. >. >. >Summary: Use my fixes, such as: > >/* @(#)fprintf.c 1.5 */ >... > if (!(iop->_flag & _IOWRT)) { /* DAG -- bug fix (was |) */ >... > if (iop->_flag & _IORW) { /* DAG -- bug fix (was |) */ >... > >and don't install any invocations of _WRTCHK(). > >HEY, AT&T USDL or whatever -- fix this in 5.3.0! Correct. My fix was overkill. It's only redeeming feature was that it did work. ---- Phil Chadwick Australia: (07) 2296500 Department of Forestry International: +61 7 2296500 PO Box 5 ACSnet: phil@qfdts.oz Brisbane, Roma Street ARPA: decvax!mulga!qfdts.oz!phil@UCB-VAX.ARPA AUSTRALIA 4001 UUCP: {decvax,vax135,eagle,pesnta}!mulga!qfdts.oz!phil