[Bug 52157] ntdll:wow64 fails on 64-bit Wine
WineHQ Bugzilla
wine-bugs at winehq.org
Mon Dec 6 11:34:11 CST 2021
https://bugs.winehq.org/show_bug.cgi?id=52157
Bernhard Übelacker <bernhardu at mailbox.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bernhardu at mailbox.org
--- Comment #1 from Bernhard Übelacker <bernhardu at mailbox.org> ---
It looks like the call to DbgUiIssueRemoteBreakin expects the
target process to be of the same bitness as itself.
It tries to create a thread in the 32-bit process with
the address of the 64-bit function DbgUiRemoteBreakin.
This pointer get truncated the the func variable, therefore the check in
invoke_system_apc fails and returns STATUS_INVALID_PARAMETER.
dlls/ntdll/unix/server.c:541
if (reserve == call->create_thread.reserve && commit == ... &&
(ULONG_PTR)func == call->create_thread.func && ...)
But I am not completely sure because that way the test
shouldn't have succeeded before?
# ntdll_test.exe wow64
(rr) print/x call->create_thread
$47 = {type = 0xc, flags = 0x0, func = 0x170043270, arg = 0x0, zero_bits = 0x0,
reserve = 0x0, commit = 0x0}
(rr) print DbgUiRemoteBreakin
$48 = {void (void *)} 0x170043270 <DbgUiRemoteBreakin>
# C:\windows\syswow64\notepad.exe
(rr) print/x call->create_thread
$22 = {type = 0xc, flags = 0x0, func = 0x170043270, arg = 0x0, zero_bits = 0x0,
reserve = 0x0, commit = 0x0}
(rr) print func
$23 = (void *) 0x70043270
# 0x7bc412e1 in DbgUiRemoteBreakin at 4
--
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