Skip Menu |

This queue is for tickets about the Win32-API CPAN distribution.

Report information
The Basics
Id: 82090
Status: rejected
Priority: 0/
Queue: Win32-API

People
Owner: Nobody in particular
Requestors: NLNETLABS [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 0.64
Fixed in: (no value)



Hi, I have this crash when doing Win32::IPHelper::GetNetworkParams({}) on 64bit ActiveState perl: Problem signature: Problem Event Name: APPCRASH Application Name: perl.exe Application Version: 5.14.2.1402 Application Timestamp: 4e8f83bc Fault Module Name: Iphlpapi.DLL Fault Module Version: 6.1.7601.17514 Fault Module Timestamp: 4ce7c6da Exception Code: c0000005 Exception Offset: 0000000000008a64 OS Version: 6.1.7601.2.1.0.400.8 It is in Iphlpapi.dll, so something goes wrong with the IPHelper call to GetNetworkParams within Iphlpapi.dll. And then it has to be something with the function arguments handling (a pointer to a struct and a length pointer), because other Win32::IPHelper functions are working fine. B.t.w. de problem does not occur with 32 bits ActiveState perl or 32 or 64bit Strawberry Perl. Only with 64bits ActiveState perl.
On Tue Dec 18 10:29:26 2012, NLNETLABS wrote: Show quoted text
> Hi, > > I have this crash when doing Win32::IPHelper::GetNetworkParams({}) on > 64bit ActiveState perl: > > Problem signature: > Problem Event Name: APPCRASH > Application Name: perl.exe > Application Version: 5.14.2.1402 > Application Timestamp: 4e8f83bc > Fault Module Name: Iphlpapi.DLL > Fault Module Version: 6.1.7601.17514 > Fault Module Timestamp: 4ce7c6da > Exception Code: c0000005 > Exception Offset: 0000000000008a64 > OS Version: 6.1.7601.2.1.0.400.8 > > It is in Iphlpapi.dll, so something goes wrong with the IPHelper call to > GetNetworkParams within Iphlpapi.dll. And then it has to be something > with the function arguments handling (a pointer to a struct and a length > pointer), because other Win32::IPHelper functions are working fine. > > B.t.w. de problem does not occur with 32 bits ActiveState perl or 32 or > 64bit Strawberry Perl. Only with 64bits ActiveState perl.
What version of Win32::API are you using? What compiler did you use to compiler Win32::API for your 64 bit ActivePerl? I tried your code on x64 ActivePerl 5.14.2 ActivePerl Build 1402 [295342] with VC 2008 and Win32::API 0.74 on Server 2003. No crash.
On Tue Dec 18 10:29:26 2012, NLNETLABS wrote: Show quoted text
> Hi, > > I have this crash when doing Win32::IPHelper::GetNetworkParams({}) on > 64bit ActiveState perl: > > Problem signature: > Problem Event Name: APPCRASH > Application Name: perl.exe > Application Version: 5.14.2.1402 > Application Timestamp: 4e8f83bc > Fault Module Name: Iphlpapi.DLL > Fault Module Version: 6.1.7601.17514 > Fault Module Timestamp: 4ce7c6da > Exception Code: c0000005 > Exception Offset: 0000000000008a64 > OS Version: 6.1.7601.2.1.0.400.8 > > It is in Iphlpapi.dll, so something goes wrong with the IPHelper call to > GetNetworkParams within Iphlpapi.dll. And then it has to be something > with the function arguments handling (a pointer to a struct and a length > pointer), because other Win32::IPHelper functions are working fine. > > B.t.w. de problem does not occur with 32 bits ActiveState perl or 32 or > 64bit Strawberry Perl. Only with 64bits ActiveState perl.
Also, what is the full script you were running when you called Win32::IPHelper::GetNetworkParams? I have a suspicion you had a C stack overflow based on and looking at the asm of Iphlpapi.DLL with that file version. Fault Module Name: Iphlpapi.DLL Fault Module Version: 6.1.7601.17514 Fault Module Timestamp: 4ce7c6da Exception Code: c0000005 Exception Offset: 0000000000008a64
On Wed 19 Dec 2012 00:55:54, BULKDD wrote: Show quoted text
> What version of Win32::API are you using? What compiler did you use to > compiler Win32::API for your 64 bit ActivePerl?
I do not know anymore. Back then I used amazon ec2 to try to reproduce the problem. I'm retrying now... but it takes long :( I will let you know if I can still reproduce.
On Wed 19 Dec 2012 01:35:27, BULKDD wrote: Show quoted text
> Also, what is the full script you were running when you called > Win32::IPHelper::GetNetworkParams?
Well... the original requester found it using Net::DNS. But I narrowed it down and only called Win32::IPHelper::GetNetworkParams in the end: perl.exe -e "use Win32::IPHelper; Win32::IPHelper::GetNetworkParams({})"
On Wed 19 Dec 2012 00:55:54, BULKDD wrote: Show quoted text
> What version of Win32::API are you using? What compiler did you use to > compiler Win32::API for your 64 bit ActivePerl? > > I tried your code on x64 ActivePerl 5.14.2 ActivePerl Build 1402 > [295342] with VC 2008 and Win32::API 0.74 on Server 2003. No crash.
I was able to reproduce with both Windows 2008 Server R2 Base with 64-bits ActivePerl 5.14.2.1402. The version of Win32::API shipped with ActivePerl 5.14 and 5.16 seems to be 0.64! After updating Win32::API with ppm the problem did not occur any more. This was also the case with ActivePerl 5.16 on Windows 2012. The bug is thus in ActiveState packaged with an outdated version of Win32::API. I will file a bug report with them. Thanks for your help!