Added patch to pass cookie by reference to msvcrt_local_unwind4 in _seh_longjmp_unwind4.

This commit is contained in:
Sebastian Lackner
2015-10-02 01:43:56 +02:00
parent 8b65b1c1c8
commit f4dcef9c77
5 changed files with 50 additions and 1 deletions

View File

@@ -0,0 +1,26 @@
From 3c3b2cc8ce0cf1acbaa409dce17315f851374bcb Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 2 Oct 2015 01:41:20 +0200
Subject: msvcrt: Pass cookie reference to msvcrt_local_unwind4 instead of
value.
---
dlls/msvcrt/except_i386.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msvcrt/except_i386.c b/dlls/msvcrt/except_i386.c
index 6cbb758..1625854 100644
--- a/dlls/msvcrt/except_i386.c
+++ b/dlls/msvcrt/except_i386.c
@@ -1127,7 +1127,7 @@ void __stdcall _seh_longjmp_unwind(struct MSVCRT___JUMP_BUFFER *jmp)
*/
void __stdcall _seh_longjmp_unwind4(struct MSVCRT___JUMP_BUFFER *jmp)
{
- msvcrt_local_unwind4( (void *)jmp->Cookie, (MSVCRT_EXCEPTION_FRAME *)jmp->Registration,
+ msvcrt_local_unwind4( (ULONG *)&jmp->Cookie, (MSVCRT_EXCEPTION_FRAME *)jmp->Registration,
jmp->TryLevel, (void *)jmp->Ebp );
}
--
2.5.1

View File

@@ -0,0 +1 @@
Fixes: [39356] Pass cookie by reference to msvcrt_local_unwind4 in _seh_longjmp_unwind4

View File

@@ -179,6 +179,7 @@ patch_enable_all ()
enable_msvcp90_basic_string_dtor="$1"
enable_msvcrt_Math_Precision="$1"
enable_msvcrt_StdHandle_RefCount="$1"
enable_msvcrt__seh_longjmp_unwind4="$1"
enable_msvfw32_Image_Size="$1"
enable_ntdll_APC_Performance="$1"
enable_ntdll_APC_Start_Process="$1"
@@ -637,6 +638,9 @@ patch_enable ()
msvcrt-StdHandle_RefCount)
enable_msvcrt_StdHandle_RefCount="$2"
;;
msvcrt-_seh_longjmp_unwind4)
enable_msvcrt__seh_longjmp_unwind4="$2"
;;
msvfw32-Image_Size)
enable_msvfw32_Image_Size="$2"
;;
@@ -3894,6 +3898,21 @@ if test "$enable_msvcrt_StdHandle_RefCount" -eq 1; then
) >> "$patchlist"
fi
# Patchset msvcrt-_seh_longjmp_unwind4
# |
# | This patchset fixes the following Wine bugs:
# | * [#39356] Pass cookie by reference to msvcrt_local_unwind4 in _seh_longjmp_unwind4
# |
# | Modified files:
# | * dlls/msvcrt/except_i386.c
# |
if test "$enable_msvcrt__seh_longjmp_unwind4" -eq 1; then
patch_apply msvcrt-_seh_longjmp_unwind4/0001-msvcrt-Pass-cookie-reference-to-msvcrt_local_unwind4.patch
(
echo '+ { "Sebastian Lackner", "msvcrt: Pass cookie reference to msvcrt_local_unwind4 instead of value.", 1 },';
) >> "$patchlist"
fi
# Patchset msvfw32-Image_Size
# |
# | This patchset fixes the following Wine bugs: