awk
utzoo!decvax!ittvax!swatt
utzoo!decvax!ittvax!swatt
Wed Nov 25 13:56:59 AEST 1981
I goofed the last time on this; I forgot news quits on the first input
line starting with '.'. Again:
Wed Nov 25 13:19:47 EST 1981 (reported by cox)
[ ] The following script causes awk to core dump with a bus
error:
---------------------------------
# attempt to produce awk core dump
{
print $0 >data0
}
---------------------------------
The fix is:
---------------------------------
cp /usr/src/cmd/awk/run.c /tmp/upd.$$.tmp ; chmod +w /tmp/upd.$$.tmp
ed - /tmp/upd.$$.tmp <<\!xxFUNNYxx
848c
if (files[i].fp && strcmp(x.optr->sval, files[i].fname) == 0)
.
846a
/* changed to check for "files[i].fp != 0" in addition to
* the string compare, as "fprintf(0, ...)" causes bus
* errors.
*/
.
w
q
!xxFUNNYxx
diff /usr/src/cmd/awk/run.c /tmp/upd.$$.tmp >/tmp/upd.$$.dif
if cmp - /tmp/upd.$$.dif <<\!xxFUNNYxx
846a847,850
> /* changed to check for "files[i].fp != 0" in addition to
> * the string compare, as "fprintf(0, ...)" causes bus
> * errors.
> */
848c852
< if (strcmp(x.optr->sval, files[i].fname) == 0)
---
> if (files[i].fp && strcmp(x.optr->sval, files[i].fname) == 0)
!xxFUNNYxx
then
: 'compare equal, ok'
rm -f run.c
cp /tmp/upd.$$.tmp run.c ; chmod a-w run.c
else
echo "Old source file not same version; use diff listings by hand"
fi
rm -f /tmp/upd.$$.tmp /tmp/upd.$$.dif
---------------------------------
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list