ntdll: Ignore invalid exit_frame when exiting thread.

Sebastian Lackner sebastian at fds-team.de
Mon Apr 18 05:42:38 CDT 2016

On 18.04.2016 12:27, Alexandre Julliard wrote:
> Sebastian Lackner <sebastian at fds-team.de> writes:
>> Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
>> ---
>> When applications switch to a custom stack, exit_frame is not necessarily
>> valid anymore.
> How does it become invalid? Does the app unmap the previous stack?

Yes, MSYS2/Cygwin will switch to its own stack and deallocate the old one.
This patch alone is not sufficient because there are still a couple of other
references to the old stack (like the debug_info struct in start_thread).

If preferred, this issue can also be solved differently by calculting exit_frame
dynamically based on StackBase (after a couple of other bugs are fixed).
Disadvantage is that if applications mess around with StackBase, I'm not sure if
we should trust that the new stack is set up properly.

More information about the wine-devel mailing list