Added patch to fix check for end_frame in RtlUnwindEx on x86_64.

This commit is contained in:
Sebastian Lackner 2015-01-26 04:09:22 +01:00
parent a3813c45a0
commit a5566f1e8e
6 changed files with 51 additions and 3 deletions

View File

@ -38,9 +38,10 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugfixes and features included in the next upcoming release [1]:**
**Bugfixes and features included in the next upcoming release [2]:**
* Call DriverUnload function when unloading a driver.
* Call DriverUnload function when unloading a device driver.
* Fix check for end_frame in RtlUnwindEx on x86_64. ([Wine Bug #34254](https://bugs.winehq.org/show_bug.cgi?id=34254))
**Bugs fixed in Wine Staging 1.7.35 [146]:**

2
debian/changelog vendored
View File

@ -1,4 +1,6 @@
wine-staging (1.7.36) UNRELEASED; urgency=low
* Added patch to properly call DriverUnload when unloading device drivers.
* Added patch to fix check for end_frame in RtlUnwindEx on x86_64.
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 25 Jan 2015 05:58:36 +0100
wine-staging (1.7.35) unstable; urgency=low

View File

@ -0,0 +1,25 @@
From 7dd7631b611976b237acc63386b26866e5b4b253 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 25 Jan 2015 15:46:05 +0100
Subject: ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.
---
dlls/ntdll/signal_x86_64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index 05581c2..e739cdb 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3178,7 +3178,7 @@ void WINAPI RtlUnwindEx( PVOID end_frame, PVOID target_ip, EXCEPTION_RECORD *rec
dispatch.EstablisherFrame = new_context.Rsp;
}
- if (context->Rsp == (ULONG64)end_frame) break;
+ if (dispatch.EstablisherFrame == (ULONG64)end_frame) break;
*context = new_context;
}
--
2.2.1

View File

@ -0,0 +1 @@
Fixes: [34254] Fix check for end_frame in RtlUnwindEx on x86_64.

View File

@ -129,6 +129,7 @@ patch_enable_all ()
enable_ntdll_NtSetLdtEntries="$1"
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_RtlIpv4StringToAddressExA="$1"
enable_ntdll_RtlUnwindEx="$1"
enable_ntdll_ThreadTime="$1"
enable_ntdll_User_Shared_Data="$1"
enable_ntdll_WRITECOPY="$1"
@ -405,6 +406,9 @@ patch_enable ()
ntdll-RtlIpv4StringToAddressExA)
enable_ntdll_RtlIpv4StringToAddressExA="$2"
;;
ntdll-RtlUnwindEx)
enable_ntdll_RtlUnwindEx="$2"
;;
ntdll-ThreadTime)
enable_ntdll_ThreadTime="$2"
;;
@ -2158,6 +2162,21 @@ if test "$enable_ntdll_RtlIpv4StringToAddressExA" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-RtlUnwindEx
# |
# | This patchset fixes the following Wine bugs:
# | * [#34254] Fix check for end_frame in RtlUnwindEx on x86_64.
# |
# | Modified files:
# | * dlls/ntdll/signal_x86_64.c
# |
if test "$enable_ntdll_RtlUnwindEx" -eq 1; then
patch_apply ntdll-RtlUnwindEx/0001-ntdll-Fix-check-for-end_frame-in-RtlUnwindEx-on-x86_.patch
(
echo '+ { "Sebastian Lackner", "ntdll: Fix check for end_frame in RtlUnwindEx on x86_64.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-ThreadTime
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1 +1 @@
Fixes: Call DriverUnload function when unloading a driver.
Fixes: Call DriverUnload function when unloading a device driver.