Cygwin handle leak in net.cc

Corinna Vinschen cygwin@cygwin.com
Sun Jun 3 15:19:00 GMT 2001


On Sun, Jun 03, 2001 at 02:50:12PM -0500, Joe Hagen wrote:
> The functions recv/recfrom and send/sendto use
> the wsock_event class that obtains a handle using
> WSACreateEvent.
> 
> wsock_event::prepare allocates the handle.
> 
> When this class is used, if wsock_event::wait isn't
> invoked, the handle won't be freed.
> 
> I observed this in the recv function.
> 
>   In Windows NT's Task Manager, I was watching 
> fetchmail's handle count, and it quickly grew to 60,000.
> I modified the fetchmail source to obtain its handle
> count using NtQueryInformationProcess from NTDLL.DLL,
> and recv() was the culprit.
> 
> If the wsock_event class was modified with a destructor
> that did this:
> 
>     wsock_event::~wsock_event
>     {
>         if (event)
>         {
>                WSACloseEvent(event);
>                event=0;
>         }
>     }
> 
> I think this would fix the problem.

Thanks for the hint. I added a destructor.

Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list