Sweden-Number/dlls/ntdll/unix
Martin Storsjö d00c897749 ntdll: Error out if unwinding isn't progressing on arm.
In PE builds of wine, there's no unwind info (as LLVM hasn't
implemented generating SEH unwind info for ARM yet).

On startup of wine, an exception of the type RPC_S_SERVER_UNAVAILABLE
is raised. In a PE build of Wine, the unwind would get stuck in
an infinite loop.

This still loops for a short while; after returning the error
STATUS_INVALID_DISPOSITION, KiUserExceptionDispatcher ends up
calling RtlRaiseStatus with this status, which then tries to
unwind again, getting stuck similarly. However by recursively
trying to unwind multiple times, the process crashes fairly soon
after running out of stack.

Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-15 19:59:44 +01:00
..
cdrom.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
debug.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
env.c ntdll: Export RtlNtStatusToDosError from Unix lib. 2021-10-12 18:29:22 +02:00
file.c ntdll: Implement get_device_mount_point() on FreeBSD. 2021-11-03 21:06:48 +01:00
loader.c ntdll: Create a remote thread in DbgUiIssueRemoteBreakin(). 2021-11-09 22:02:54 +01:00
loadorder.c ntdll: Fix the check for the main exe in get_load_order(). 2021-05-06 18:12:37 +02:00
process.c ntdll: Implement vm counters on FreeBSD. 2021-11-03 21:06:48 +01:00
registry.c ntdll: Always clear the returned handle in Nt object functions. 2021-07-23 17:38:32 +02:00
security.c ntdll: Always clear the returned handle in Nt object functions. 2021-07-23 17:38:32 +02:00
serial.c configure: Stop checking for poll.h and sys/poll.h - always use poll.h. 2021-10-31 17:56:54 +01:00
server.c ntdll: Create a remote thread in DbgUiIssueRemoteBreakin(). 2021-11-09 22:02:54 +01:00
signal_arm.c ntdll: Error out if unwinding isn't progressing on arm. 2021-11-15 19:59:44 +01:00
signal_arm64.c ntdll: Don't blindly increment Sp by 8 in leaf functions on arm64. 2021-11-09 22:02:55 +01:00
signal_i386.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
signal_x86_64.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
socket.c configure: Define _GNU_SOURCE in config.h. 2021-10-11 11:22:53 +02:00
sync.c configure: Stop checking for poll.h and sys/poll.h - always use poll.h. 2021-10-31 17:56:54 +01:00
system.c ntdll: Implement setting SYSTEM_PERFORMANCE_INFORMATION.IdleTime on FreeBSD. 2021-11-03 21:06:48 +01:00
tape.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
thread.c ntdll: Avoid including wine/port.h. 2021-10-20 16:16:07 +02:00
unix_private.h ntdll: Create a remote thread in DbgUiIssueRemoteBreakin(). 2021-11-09 22:02:54 +01:00
virtual.c ntdll: Don't constraint TEB address to 2GB for native x64 process. 2021-11-04 22:36:28 +01:00