This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug manual/2801] New: Bug in gethostbyname_r() example
- From: "andyparkins at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: 19 Jun 2006 14:51:18 -0000
- Subject: [Bug manual/2801] New: Bug in gethostbyname_r() example
- Reply-to: sourceware-bugzilla at sourceware dot org
http://www.gnu.org/software/libc/manual/html_node/Host-Names.html
The gethostbyname_r() call accepts a pointer to a struct hostent (&hostbuf in
the example) and a pointer to a pointer to a struct hostent (&hp in the
example). The result of the lookup is stored in hostbuf itself and hp is set to
point at that buffer on success.
The hp pointer is returned by the example function, but shouldn't be. The thing
it points to has automatic scope and so won't exist when the function returns.
Either,
The example function gethostname() should accept a (hostent*) as a parameter,
or
The hostbuf variable should be allocated statically (although that would
defeat the purpose of a gethostbyname_r() call in the first place)
There is a secondary problem in that there is no (direct) way that the pointer
to the auxiliary buffer is passed back to the caller for later release of the
allocated memory - leading to a memory leak. Perhaps that could be ignored in
example code though?
--
Summary: Bug in gethostbyname_r() example
Product: glibc
Version: unspecified
Status: NEW
Severity: minor
Priority: P2
Component: manual
AssignedTo: roland at gnu dot org
ReportedBy: andyparkins at gmail dot com
CC: glibc-bugs at sources dot redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=2801
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.