Adapted from [check_invalid_gs](https://gitlab.winehq.org/wine/wine/-/blob/d7a7cae2e2d1ad… 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](https://bugs.winehq.org/attachment.cgi?id=77444) 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.
--
v8: ntdll/tests: Re-enable a previously crashing test.
ntdll: Check for invalid gs_base in the 64-bit segv_handler.
ntdll/tests: Add an exception test for accessing a modified %gs on x86_64.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7064
On Fri Apr 18 17:25:10 2025 +0000, eric pouech wrote:
> also note that for the first word of command line, when using tab,
> native cmd.exe filters on directories and files that can be executed
> (likely using PATHEXT list of extensions, didn't test that though)
> i'd suggest handling in two seperate patches the rd/md part, and the
> first parameter one...
> that should boil down to adding filters to the files gotten out of find
> files (directories and/or extensions) depending on context
Will definitely handle .exe, etc. filtering as a subsequent patch.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7843#note_101422
--
v6: amstream: Implement dynamic formats in ddraw stream.
amstream/tests: Test for dynamic formats in ddraw stream.
amstream: Implement custom allocator for ddraw stream.
amstream/tests: Test for custom allocator in ddraw stream.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7715
--
v5: mshtml: Validate builtin host functions in IE9+ using prototype_id rather
mshtml: Store the prototype_id of the last member that contains the needed
mshtml: Define "create" from XMLHttpRequest constructor as a jscript prop
mshtml: Consolidate the functional constructors into a common struct
mshtml: Rename struct constructor to stub_constructor.
mshtml: Use get_constructor in window's get_XMLHttpRequest.
mshtml: Move Option constructor to the window rather than the prototype.
mshtml: Move Image constructor to the window rather than the prototype.
mshtml: Don't expose "create" from Option constructor in IE9+ modes.
mshtml: Don't expose "create" from Image constructor in IE9+ modes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7779
Over the past several weeks I've been working on and off on this. I didn't track the hours but I'm sure that I've spent 80+ hours on the feature. I've tested and retested all known scenarios and it seems to be working as expected.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7843