Skip to content

ntdll: Check for invalid GS base in the 64-bit segv_handler.

William Horvath requested to merge whrvth/wine:57444 into master

Adapted from check_invalid_gs in signal_i386.c. This prevents crashing when the %gs register is manipulated, such as in 32-bit code on "new-style" WoW64.

"Exertus: Darkness Approaches" is a 32-bit game that triggers this crash (on WoW64), which can be downloaded from the Bugzilla page's attachments. For another example, test.c can reproduce it, courtesy of Fabian Maurer from the Bugzilla comments. This will crash whether it's compiled as 32-bit or 64-bit, while it works fine on Windows.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57444

Also, excuse me if submitting this is against some sort of code-freeze etiquette, it wasn't my intention try to have it merged immediately.

Edited by William Horvath

Merge request reports

Loading