On Tue, Dec 10, 2002 at 10:36:04AM -0500, Igor Pechtchanski wrote: > On Tue, 10 Dec 2002, Noel Gordon wrote: > > > Anyone else confirm that the following program compiled under > > gcc 3.2, cygwin 1.3.17-1, on Win2k leaks memory?
Confirmed. I found the missing free(). > >From http://www.opengroup.org/onlinepubs/007904975/functions/gethostbyaddr.html : > > The gethostbyaddr() and gethostbyname() functions *may* return > pointers to static data, which may be overwritten by subsequent > calls to any of these functions. > > The "may" above (emphasis is mine) means that the implementation is free > to malloc a data structure and require the user to free it. Since you > don't free the returned data structure in your program, it's quite > possible that there's a leak. Also, Cygwin uses the gethostbyname from > wsock32.dll, which may have different implementations on different > systems. Thus, your best bet is to look up gethostbyname on MSDN for > implementation details. Ignore MSDN. It's using an internal per-thread buffer which collides with the fork/exec mechanism of Cygwin so Cygwin duplicates the buffer to another Cygwin-thread specific allocated buffer. The deallocation of the buffer is Cygwin internal so hands off please. Thanks for the report, I've checked in a patch, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Developer mailto:[EMAIL PROTECTED] Red Hat, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/