Named revisited ...
Sir Hoyt
hoyt at polyslo.CalPoly.EDU
Tue Sep 20 13:15:31 AEST 1988
We too were having problems keeping named 4.8 running on
our Pyramid 98x. I tracked the problem down to
this line in ns_resp.c :
cp = newmsg + sizeof(HEADER) +
(cname ? dn_skipname(cp, newmsg + newmsglen) : n) + QFIXEDSZ;
It seems that the Pyramid's C compiler was producing bad code.
After the adds in the line cp would be equal to 0x112, which is not
correct when newmsg = <some valid address> (greater then 0x112 :-),
n = 14, cname = 0, and both sizeof(HEADER) and QFIXEDSZ are positive.
The following changes to ns_resp.c 'fixed' the
problem of named dying:
466 if (cname)
467 cp += dn_skipname(cp, newmsg + newmsglen) + QFIXEDSZ;
468 if ((n = dn_expand(newmsg, newmsg + newmsglen,
469 cp, dname, sizeof(name))) < 0) {
470 #ifdef DEBUG
471 if (debug)
472 fprintf(ddt,"dn_expand failed\n" );
473 #endif
474 goto servfail;
475 }
476 #ifdef pyr
477 cp = newmsg + sizeof(HEADER);
478 cp = cp + (cname ? dn_skipname(cp, newmsg + newmsglen) : n);
479 cp = cp + QFIXEDSZ;
480 #else
481 cp = newmsg + sizeof(HEADER) +
482 (cname ? dn_skipname(cp, newmsg + newmsglen) : n) + QFIXEDSZ;
483 #endif pyr
484
485 buflen = sizeof(newmsg) - (cp - newmsg);
486
487 try_again:
--
John H. Pochmara A career is great,
UUCP: {csun,voder,trwind}!polyslo!hoyt But you can't run your
Internet: hoyt at polyslo.CalPoly.EDU fingers through its hair
-Graffiti 4/13/83
More information about the Comp.sys.pyramid
mailing list