cvs commit: ports/dns/dnrd Makefile ports/dns/dnrd/files
patch-main.c patch-udp.c
Edwin Groothuis
edwin at FreeBSD.org
Fri Jan 2 21:42:44 PST 2004
edwin 2004/01/02 21:42:42 PST
FreeBSD ports repository
Modified files:
dns/dnrd Makefile
dns/dnrd/files patch-main.c
Added files:
dns/dnrd/files patch-udp.c
Log:
dns/dnrd: recv_addr init wrong and 512 byte udp packets dropped
There are a few bugs in dnrd that should probably be fixed
by the author but could be made to work on bsd:
1. Initialization in common.h of recv_addr is broken,
causing at least the '-a' switch not to work. Instead of
assuming positions of fields in the struct across platforms
I thought it safer to do a standard initialization in main().
2. The buffer overflow code in udp.c:dnsrecv() is off by
one, rejecting messages where the size exactly fills the
available buffer. I also changed to the calls to dnsrecv
to pass 512 as the max size instead of the buffers that
seem to be padded by 4 bytes for a reason I don't understand.
This causes a calling named to resend packets. Eventually
one seems to get through but response times can be painfully
slow.
PR: ports/41128
Submitted by: Michael C. Adler <mad1 at tapil.com>
Revision Changes Path
1.9 +7 -4 ports/dns/dnrd/Makefile
1.2 +15 -4 ports/dns/dnrd/files/patch-main.c
1.1 +29 -0 ports/dns/dnrd/files/patch-udp.c (new)
More information about the cvs-all
mailing list