Date: Mon, 23 Dec 1996 18:44:55 -0800 (PST) From: Bill Paul <wpaul> To: CVS-committers, cvs-all, cvs-usrsbin Subject: cvs commit: src/usr.sbin/ypserv yp_dnslookup.c Message-ID: <199612240244.SAA05485@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
wpaul 96/12/23 18:44:54
Modified: usr.sbin/ypserv yp_dnslookup.c
Log:
Fix some bugs:
- Don't dereference a NULL hostent pointer (if T_PTR lookup fails).
- Today I asked myself: "Self, you wrote this nifty async resolver
that does a great job handling delayed replies to clients using
the UDP transport, and the yplib code in libc always uses UDP
(except for yp_all()). But what if some dork makes a DNS lookup using
TCP?" Being the only dork on hand at the time, I tried it and was
enlightened. As I suspected, my transaction ID frobbing hacks cause
fireworks if called on a TCP transport handle (duh: the structures
are different). Fix: check the type of socket in xprt->xp_sock using
getsockopt() and don't use svcudp_get_xid() and svcudp_set_xid() for
anything except SOCK_DGRAM sockets. (Since accept() gives you a
new socket for each connection, the transaction ID munging isn't
needed for TCP anyway.)
Revision Changes Path
1.5 +34 -11 src/usr.sbin/ypserv/yp_dnslookup.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199612240244.SAA05485>
