[Bug 34479] Advantage Cooking: crashes on start (check for ATL thunk triggers unexpected guard page fault)
wine-bugs at winehq.org
wine-bugs at winehq.org
Mon Sep 9 19:59:52 CDT 2013
http://bugs.winehq.org/show_bug.cgi?id=34479
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Component|-unknown |ntdll
Summary|Advantage Cooking: crashes |Advantage Cooking: crashes
|on start |on start (check for ATL
| |thunk triggers unexpected
| |guard page fault)
--- Comment #2 from Anastasius Focht <focht at gmx.net> 2013-09-09 19:59:52 CDT ---
Hello folks,
confirming.
>From a quick glance it seems the check for ATL thunk triggers a guard page
fault which the parent process (which acts as debugger) doesn't expect.
Source:
http://source.winehq.org/git/wine.git/blob/f8cdbecc25b589ce3e008f9d735fbd9df17ea58b:/dlls/ntdll/signal_i386.c#l1602
--- snip ---
1602 static BOOL check_atl_thunk( EXCEPTION_RECORD *rec, CONTEXT *context )
1603 {
1604 const struct atl_thunk *thunk = (const struct atl_thunk
*)rec->ExceptionInformation[1];
1605 BOOL ret = FALSE;
1606
1607 if (!virtual_is_valid_code_address( thunk, sizeof(*thunk) )) return
FALSE;
1608
1609 __TRY
1610 {
1611 if (thunk->movl == 0x042444c7 && thunk->jmp == 0xe9)
1612 {
1613 *((DWORD *)context->Esp + 1) = thunk->this;
1614 context->Eip = (DWORD_PTR)(&thunk->func + 1) + thunk->func;
1615 TRACE( "emulating ATL thunk at %p, func=%08x arg=%08x\n",
1616 thunk, context->Eip, *((DWORD *)context->Esp + 1) );
1617 ret = TRUE;
1618 }
1619 }
1620 __EXCEPT_PAGE_FAULT
1621 {
1622 return FALSE;
1623 }
1624 __ENDTRY
1625 return ret;
1626 }
--- snip ---
Guard pages are for example used when CopyMem-II feature has been enabled in
protection (client causes access fault, parent = debugger sees special
exception type and writes decrypted page back to client process).
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list