Mon May 07 22:23:27 2012: Request 12057 was acted upon. Transaction: Correspondence added by patcat88 Queue: Win32-API Subject: dll not unloaded if the first new fails Broken in: (no value) Severity: Critical Owner: Nobody Requestors: jeff.h...@hotsos.com Status: new Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=12057 >
On Tue Mar 29 15:07:12 2005, guest wrote: > I propose the following: > If LoadLibrary() succeeds but the subsequent GetProcAddress() calls > fail, then FreeLibrary() if Procedures{$dll} isn't defined or > equals zero. > > I've attached the diff output. I dont like the patch, but this is absolutely a problem. We are leaking dll handles. It should be pretty easy to put a FreeLibrary line in this section in new sub. ________________________________________________ #### ...if all that fails, set $! accordingly if(!$hproc) { $! = Win32::GetLastError(); DEBUG "FAILED GetProcAddress for Proc '$proc': $!\n"; return undef; } _________________________________________________