GCC expects __stack_chk_fail() to be noreturn[^1]. Returning from
__stack_chk_fail() can thus lead to subtle failures.
When crashing, use a volatile NULL pointer dereference. Ideally we
would like to "abort()" here, but doing so would require two more
syscall definitions just for a cold function. After all, the function
isn't even used at all if -fno-stack-protector is specified.
Also, don't say "stack smashing" (unlike glibc). The preloader
currently initializes the stack canary value to a fixed value (0), which
serves little value in protecting against actual buffer overrun attacks.
[^1]: https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gccint/Stack-Smashing-Protection.h…
--
v2: loader: Don't return from __stack_chk_fail() stub in preloader.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3708
GCC expects __stack_chk_fail() to be noreturn[^1]. Returning from
__stack_chk_fail() can thus lead to subtle failures.
When crashing, use a volatile NULL pointer dereference. Ideally we
would like to "abort()" here, but doing so would require two more
syscall definitions just for a cold function. After all, the function
isn't even used at all if -fno-stack-protector is specified.
Also, don't say "stack smashing" (unlike glibc). The preloader
currently initializes the stack canary value to a fixed value (0), which
serves little value in protecting against actual buffer overrun attacks.
[^1]: https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gccint/Stack-Smashing-Protection.h…
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3708
This can then be used to run tests in an appx context, for instance for https://gitlab.winehq.org/wine/wine/-/merge_requests/3548
--
v2: windows.applicationmodel/tests: Test executing a WinRT package application.
windows.applicationmodel/tests: Test IPackageManager_RegisterPackageAsync.
makedep: Support generating .exe TESTDLL resources.
makedep: Use #pragma makedep testdll for TESTDLL resources.
windows.applicationmodel/tests: Add some IPackageManager tests.
windows.applicationmodel: Add stub DLL.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3643
Now that we can write HLSL intrinsics in HLSL, cleaning up missing
functions becomes much easier.
This commit also extends the trigonometry tests a little bit to make
sure that tan works right.
--
v3: vkd3d-shader/hlsl: Implement intrinsic tan.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/321