Red Hat Bugzilla – Bug 49956
gethostbyaddr leaking handles when it can't resolve address
Last modified: 2008-05-01 11:38:00 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Description of problem:
gethostbyaddr leaks a file handle when it cannot look up the address in
the /etc/hosts file. Placing the ip in question in the hosts file fixes
the problem, removing it causes the problem.
char * pr_addr(unsigned int addr)
struct hostent *hp;
static char buf;
//file handle leak occurs right here when addr not in hosts file
hp = gethostbyaddr((char *)&addr, 4, AF_INET);
if ( hp == NULL )
//sprintf(buf, "%s", inet_ntoa(*(struct in_addr *)&addr));
sprintf(buf,"pr_addr : could not resolve host.\n");
sprintf(buf, "%s (%s)", hp->h_name,
inet_ntoa(*(struct in_addr *)&addr));
Steps to Reproduce:
1.See sample code above.
Move to the right product and component
Which exact glibc version are you using?
How does your /etc/nsswitch.conf look like (does it search dns too, or just
files, or what)?
What exact addresses are you trying (can you cook up a self contained testcase,
not just a single function)?
What does strace show up?
Cannot reproduce this.