mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Updated ntdll-NtSetLdtEntries patchset.
Fixed a test failure.
This commit is contained in:
parent
f2d1cc1a8c
commit
1785a56934
@ -1,14 +1,15 @@
|
||||
From 43e419ddc34cac7cf7754aed353fcbfb0bd9619e Mon Sep 17 00:00:00 2001
|
||||
From 8abf5d134499aaf9dc87daa657cfe87586ad8ded Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 28 Apr 2016 18:14:36 +0800
|
||||
Subject: [PATCH] ntdll: Implement NtSetLdtEntries.
|
||||
|
||||
---
|
||||
dlls/kernel32/tests/thread.c | 79 ++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 79 insertions(+)
|
||||
dlls/ntdll/signal_i386.c | 2 +-
|
||||
2 files changed, 80 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index e068797ff57..8c5148d4a92 100644
|
||||
index 2dd274e0c10..ae67a9aa0a0 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -99,6 +99,7 @@ static BOOL (WINAPI *pSetThreadGroupAffinity)(HANDLE,const GROUP_AFFINITY*,GROUP
|
||||
@ -110,7 +111,7 @@ index e068797ff57..8c5148d4a92 100644
|
||||
}
|
||||
#undef X
|
||||
}
|
||||
@@ -2394,6 +2472,7 @@ START_TEST(thread)
|
||||
@@ -2393,6 +2471,7 @@ START_TEST(thread)
|
||||
test_SetThreadContext();
|
||||
test_GetThreadSelectorEntry();
|
||||
test_GetThreadContext();
|
||||
@ -118,6 +119,19 @@ index e068797ff57..8c5148d4a92 100644
|
||||
#endif
|
||||
test_QueueUserWorkItem();
|
||||
test_RegisterWaitForSingleObject();
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 441ef579609..eb28d668279 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2533,7 +2533,7 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
|
||||
if (reply->flags)
|
||||
info->Entry = ldt_make_entry( (void *)reply->base, reply->limit, reply->flags );
|
||||
else
|
||||
- status = STATUS_UNSUCCESSFUL;
|
||||
+ status = STATUS_ACCESS_VIOLATION;
|
||||
}
|
||||
}
|
||||
SERVER_END_REQ;
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 338f514f1468d77ae19ac9bbe7ba7d2b018ec83c Mon Sep 17 00:00:00 2001
|
||||
From c7ec3f3bd55bbe998a09097ad0dfbcc6df3392db Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Thu, 28 Apr 2016 17:01:16 +0200
|
||||
Subject: [PATCH] libs/wine: Allow to modify reserved LDT entries.
|
||||
@ -22,10 +22,10 @@ fails.
|
||||
3 files changed, 1 insertion(+), 9 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index 70b22367e18..a454bf118cc 100644
|
||||
index ae67a9aa0a0..6149be8cf4a 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -1325,16 +1325,12 @@ static void test_NtSetLdtEntries(void)
|
||||
@@ -1339,16 +1339,12 @@ static void test_NtSetLdtEntries(void)
|
||||
{
|
||||
memset(&sel.entry, 0x9a, sizeof(sel.entry));
|
||||
ret = GetThreadSelectorEntry(GetCurrentThread(), 0x000f, &sel.entry);
|
||||
@ -43,10 +43,10 @@ index 70b22367e18..a454bf118cc 100644
|
||||
}
|
||||
}
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 2db76f0e250..fd1a764dacf 100644
|
||||
index eb28d668279..9c629469843 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2614,8 +2614,6 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
|
||||
@@ -2553,8 +2553,6 @@ NTSTATUS get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_
|
||||
NTSTATUS WINAPI NtSetLdtEntries( ULONG sel1, LDT_ENTRY entry1, ULONG sel2, LDT_ENTRY entry2 )
|
||||
{
|
||||
if (sel1 >> 16 || sel2 >> 16) return STATUS_INVALID_LDT_DESCRIPTOR;
|
||||
@ -56,10 +56,10 @@ index 2db76f0e250..fd1a764dacf 100644
|
||||
ldt_lock();
|
||||
if (sel1) ldt_set_entry( sel1, entry1 );
|
||||
diff --git a/libs/wine/ldt.c b/libs/wine/ldt.c
|
||||
index a8f4925019b..5e85c1137c8 100644
|
||||
index 18b0b9be9bf..30d9b945f73 100644
|
||||
--- a/libs/wine/ldt.c
|
||||
+++ b/libs/wine/ldt.c
|
||||
@@ -225,8 +225,6 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry )
|
||||
@@ -200,8 +200,6 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry )
|
||||
{
|
||||
int ret = 0, index = sel >> 3;
|
||||
|
||||
@ -68,7 +68,7 @@ index a8f4925019b..5e85c1137c8 100644
|
||||
#ifdef linux
|
||||
{
|
||||
struct modify_ldt_s ldt_info;
|
||||
@@ -278,7 +276,7 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry )
|
||||
@@ -253,7 +251,7 @@ static int internal_set_entry( unsigned short sel, const LDT_ENTRY *entry )
|
||||
wine_ldt_copy_obsolete.limit[index] = wine_ldt_get_limit(entry);
|
||||
wine_ldt_copy_obsolete.flags[index] = (entry->HighWord.Bits.Type |
|
||||
(entry->HighWord.Bits.Default_Big ? WINE_LDT_FLAGS_32BIT : 0) |
|
||||
@ -78,5 +78,5 @@ index a8f4925019b..5e85c1137c8 100644
|
||||
return ret;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
2.26.2
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user