Inode Bug Fix for ISC 2.0.2
Larry Jones
scjones at thor.UUCP
Thu Jan 10 08:48:26 AEST 1991
Due to popular demand, here's the fix for ISC 2.0.2 as originally
posted by Bill Wells:
I made a similar patch for Microport SysV/386 3.0e and have been
running it for most of this year without problems. I was asked to
solve this for Interactive 2.0.2 and did so. However, I did the work
on my Microport system, and the enclosed shell script works on that;
it ought to work on an Interactive system but I've not tried this.
With that caveat, here is what you do to patch your kernel. First,
run the shell script. Make sure that it behaved correctly. Then save
a copy of your good kernel and /etc/conf/pack.d/s5/Driver.o. If you
are really paranoid, back up your whole system, though this shouldn't
be necessary. Replace the Driver.o file with the one on /tmp.
Finally, rebuild your kernel. That particular bug should never bite
you again. Further kernel builds will have the bug fixed as well. If
you have any problems, send me e-mail. I'll try to get back to you
quicker than I did with this! If the patch causes some nasty kind of
crash, please post immediately in hopes that others will read your
message before having tried the patch.
in=/etc/conf/pack.d/s5/Driver.o
out=/tmp/Driver.o
# check that we have the right Driver.o file
if [ x"`sum $in`" != x"50880 81 $in" ]; then
echo "sum failed"
exit 1
fi
if [ x"`sum -r $in`" != x"33908 81 $in" ]; then
echo "sum -r failed"
exit 1
fi
# copy the file and make an appropriate fix
{
dd ibs=1 obs=1k count=1977
dd bs=19 count=1 of=/dev/null
echo '\074\0144\017\0204\0327\0376\0377\0377\0146\c'
echo '\0307\0207\0324\00\00\00\0144\00\0353\0151\c'
dd bs=16k
} <$in >$out
# compare the list of differences against the expected differences
cat <<\+ >/tmp/fix$$
1978 75 74
1980 0 17
1981 0 204
1982 0 327
1983 164 376
1984 14 377
1985 146 377
1986 307 146
1987 207 307
1988 324 207
1989 0 324
1992 144 0
1993 0 144
1994 353 0
1995 152 353
1996 220 151
+
if cmp -l $in $out | cmp -s - /tmp/fix$$; then
rm /tmp/fix$$
exit 0
else
rm /tmp/fix$$
echo "patch failed"
exit 1
fi
---
Bill { uunet | novavax | ankh | sunvice } !twwells!bill
bill at twwells.com
----
Larry Jones UUCP: uunet!sdrc!thor!scjones
SDRC scjones at thor.UUCP
2000 Eastman Dr. BIX: ltl
Milford, OH 45150-2789 AT&T: (513) 576-2070
This sounds suspiciously like one of Dad's plots to build my character.
-- Calvin
More information about the Comp.unix.sysv386
mailing list