develooper Front page | perl.perl5.porters | Postings from June 2013

[perl #118127] Perl crash when run under AppVerifier

Thread Next
From:
bulk88 via RT
Date:
June 16, 2013 01:42
Subject:
[perl #118127] Perl crash when run under AppVerifier
Message ID:
rt-3.6.HEAD-2552-1371346964-1216.118127-15-0@perl.org
On Thu Jun 06 11:27:32 2013, kartlee05 wrote:
> Please find below the new crash
> report we
> received. This seem to be coming win32's alarm implementation. Any
> thoughts
> about this crash?
> 
> -Karthik
> 
> 
> STACK_TEXT:
> 00000000`0031de20 00000000`76da8e59 : 00000000`00000100
> 00000000`0031e670
> 00000000`00000000 00000000`0031e640 : ntdll!RtlRaiseStatus+0x18
> 00000000`0031e3c0 00000000`76d67e74 : 00000000`0031e600
> 00000000`00000000
> 00000000`c0150008 00000000`0031e600 : ntdll! ??
> ::FNODOBFM::`string'+0x969e
> 00000000`0031e3f0 00000000`76d67b2e : 00000000`00000000
> 000007fe`fb9cbaf0
> 00000000`0031e690 000007fe`fd37d90d : ntdll!LdrpLoadDll+0x897
> 00000000`0031e600 000007fe`fd379aa9 : 00000000`00000000
> 00000000`00000000
> 000007fe`fb9cbaf0 00000000`00000062 : ntdll!LdrLoadDll+0x9a
> 00000000`0031e670 000007fe`fd37bc01 : 00000000`00000000
> 000007fe`fb9cbaf0
> 000007fe`fb9c5a10 00000000`00000000 : KERNELBASE!LoadLibraryExW+0x22e
> 00000000`0031e6e0 000007fe`fb98dffa : 00000000`00000000
> 00000065`00670061
> 00000000`00000000 00000000`00000000 : KERNELBASE!LoadLibraryExA+0x51
> 00000000`0031e730 000007fe`fb98dfb3 : 00000000`00000000
> 00000000`00000083
> 00000000`0049052a 00000000`00000001 : uxtheme!_delayLoadHelper2+0x96
> 00000000`0031e7c0 000007fe`fb98b192 : 00000000`0049052a
> 00000000`00010001
> 00000000`0031e860 00000000`00000004 :
> uxtheme!_tailMerge_dwmapi_dll+0x3f
> 00000000`0031e830 000007fe`fb9885a0 : 00000000`00000001
> 00000000`00000000
> 00000000`0049052a 00000000`00000083 : uxtheme!CThemeWnd::Reject+0x58
> 00000000`0031e860 000007fe`fb981607 : 00000000`00000000
> 00000000`00000083
> 00000000`00000000 00000000`0049052a : uxtheme!CThemeWnd::Attach+0x1cd
> 00000000`0031e8d0 000007fe`fb98b1c6 : 00000000`0031ec40
> 00000000`0049052a
> 00000000`00000000 00000000`0031ec40 :
> uxtheme!_ThemeDefWindowProc+0x133
> 00000000`0031e980 00000000`76c4aafc : 00000000`00000000
> 00000000`00000104
> 00000000`0031e9e8 00000000`0031e9f8 : uxtheme!ThemeDefWindowProcA+0xe
> 00000000`0031e9c0 00000000`6473b226 : 00000000`00000083
> 00000000`00000000
> 00000000`00000000 ffffffff`ffffffff : user32!DefWindowProcA+0xe6
> 00000000`0031ea10 00000000`76c59bd1 : 00000000`00000000
> 00000000`00000000
> 00000000`00000001 00000000`00000000 :
> perl514!win32_message_window_proc+0x46
> [c:\perl\x64\perl-5.14.2\win32\win32.c @ 4450]
> 00000000`0031ea40 00000000`76c572cb : 00000000`00000000
> 00000000`6473b1e0
> 00000000`00000000 00000000`00000000 :
> user32!UserCallWinProcCheckWow+0x1ad
> 00000000`0031eb00 00000000`76c506e8 : 00000000`76c5041a
> ffffffff`ffff0000
> 00000000`6473b1e0 00000000`0031ec58 :
> user32!DispatchClientMessage+0xc3
> 00000000`0031eb60 00000000`76d91225 : 00000000`00000000
> fffff880`08baf790
> 00000000`00000000 00000000`00000000 : user32!_fnINOUTNCCALCSIZE+0x3c
> 00000000`0031ebc0 00000000`76c5041a : 00000000`76c50397
> 00000000`0031f088
> 00000000`00000000 00000000`0031f088 :
> ntdll!KiUserCallbackDispatcherContinue
> 00000000`0031ec58 00000000`76c50397 : 00000000`0031f088
> 00000000`00000000
> 00000000`0031f088 00000000`0031f088 : user32!ZwUserCreateWindowEx+0xa
> 00000000`0031ec60 00000000`76c505d8 : 00000000`0000002e
> 00000000`80000000
> 00000000`00000000 00000000`00000000 :
> user32!VerNtUserCreateWindowEx+0x27c
> 00000000`0031efd0 00000000`76c4a350 : 00000000`00000000
> 00000000`64870558
> 00000000`003da340 00000000`0000003c : user32!CreateWindowEx+0x404
> 00000000`0031f120 00000000`6473b657 : 00000000`0000000e
> 00000000`00683368
> 00000000`0000000e 00000000`6482bfbe : user32!CreateWindowExA+0x70
> 00000000`0031f1a0 00000000`6473b6af : 00000000`00000000
> 00000000`02a0b1d0
> 00000000`005955a8 00000000`647dd9d9 :
> perl514!win32_create_message_window+0xa7
> [c:\perl\x64\perl-5.14.2\win32\win32.c @ 4548]
> 00000000`0031f260 00000000`647bfd35 : 00000000`02a0b1d0
> 00000000`0363f910
> 00000000`003d33c8 00000000`00000001 : perl514!win32_alarm+0x3f
> [c:\perl\x64\perl-5.14.2\win32\win32.c @ 2342]
> 00000000`0031f290 00000000`647942a6 : 00000000`005955a8
> 00000000`00000000
> 00000000`00000002 00000000`005955a8 : perl514!Perl_pp_alarm+0x55
> [c:\perl\x64\perl-5.14.2\pp_sys.c @ 4565]
> 00000000`0031f2c0 00000000`64807991 : 00000000`00000001
> 00000000`6474cef0
> 00000000`003dc140 00000000`005955a8 :
> perl514!Perl_runops_standard+0x16
> [c:\perl\x64\perl-5.14.2\run.c @ 41]
> 00000000`0031f2f0 00000000`64807c24 : 00000000`005955a8
> 00000000`00000000
> 00000000`0031f2d0 00000000`003da340 : perl514!S_run_body+0x131
> [c:\perl\x64\perl-5.14.2\win32\perl.c @ 2352]
> 00000000`0031f320 00000000`6474d291 : 00000000`003d4620
> 00000000`003dc140
> 00000000`003da340 00000000`00000000 : perl514!perl_run+0x264
> [c:\perl\x64\perl-5.14.2\win32\perl.c @ 2271]
> 00000000`0031f490 00000001`3f5811b2 : 00000000`00000001
> 00000000`00000000
> 00000000`00000000 00000000`00000000 : perl514!RunPerl+0x151
> [c:\perl\x64\perl-5.14.2\win32\perllib.c @ 270]
> 00000000`0031f8d0 00000000`7667652d : 00000000`00000000
> 00000000`00000000
> 00000000`00000000 00000000`00000000 : perl!__tmainCRTStartup+0x11a
> [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 555]
> 00000000`0031f900 00000000`76d6c521 : 00000000`00000000
> 00000000`00000000
> 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0xd
> 00000000`0031f930 00000000`00000000 : 00000000`00000000
> 00000000`00000000
> 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d
> 
> 

Use Dependency Walker since something went wrong with loading a DLL. I'm
not familiar with NT 6 DLL loader, I know more about the NT 5 DLL
loader. I dont fully trust that call stack because of
"::FNODOBFM::`string'" which seems to be garbage according to google.
Also normally the callstacks have parameters (but they are garbage on
x64 because of calling convention), but here all I see is offsets from
functions. IIRC offsets from functions means the debugger is guessing
the function call names by at the export table and calculating an offset
from the closest exported function. Sometimes this is correct, sometimes
its very wrong. _delayLoadHelper2 means a delay loaded dll, in this case
dwmapi.dll. So, we are looking for why loading a DLL caused
STATUS_INVALID_HANDLE, as an exception, instead of it winding up.
Appverifier, a C debugger attached to the process, or a checked build
are what I would try to rule out. The links below describe security
software meddling with DLL loading.

Googling STATUS_INVALID_HANDLE and loadlibraryex gave me 
http://forums.asp.net/t/1704958.aspx/7/10?Re+SEHException+thrown+when+I+run+the+application
http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/06714a48-2125-4ee7-b0bd-1df3fa329c77/


-- 
bulk88 ~ bulk88 at hotmail.com

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org:443/rt3/Ticket/Display.html?id=118127

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About