Looking at this even further, this doesn't look like much of a
hole. The code in question is:
/* Patched code */
hp = gethostbyaddr((char *)&n_ipaddr, sizeof (struct in_addr), AF_INET);
strncpy(hostnamebuffer, hp->h_name, 99);
return(hostnamebuffer);
vs.
/* Unpatched code */
return(hp->h_name);
Note that hp is set by a call to gethostbyaddr(). If DNS is being used,
doesn't this mean someone's IN-ADDR database would have to be compromised?
Also, what could be passed via a DNS hostname that could exploit a buffer
overflow? If DNS is not being used, wouldn't /etc/hosts have to be
compromised? If so, you're already hosed.
OK - I've looked at this for all of 5 minutes. What am I missing? Or
is this not really a security hole?
davek
-- | Dave Kennedy (davek@muscle.net) Voice: 770-368-1514 | | Multi-User Systems, Inc. Putting MUSCLE in Internet Access |