mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against ec9e556d31278d2de28b8ba82a063dc9fffdb440.
This commit is contained in:
parent
b6c2818755
commit
70d8178927
@ -1,4 +1,4 @@
|
||||
From d768c632777d80f52327ba0d525a0157b113f45a Mon Sep 17 00:00:00 2001
|
||||
From 478b58d0ff4d333f25b30a506d779fd2395b2b04 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 01:45:29 +0200
|
||||
Subject: [PATCH] ntdll: Add function to create new tokens for elevation
|
||||
@ -14,7 +14,7 @@ Subject: [PATCH] ntdll: Add function to create new tokens for elevation
|
||||
6 files changed, 117 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index 0d19e12768f..e313d5807b3 100644
|
||||
index 9fc12485592..f3e765e25a1 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1594,6 +1594,9 @@
|
||||
@ -28,11 +28,11 @@ index 0d19e12768f..e313d5807b3 100644
|
||||
@ cdecl wine_get_version() NTDLL_wine_get_version
|
||||
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index b5b08fc47ef..8476907e7ec 100644
|
||||
index f36929c5acb..1afda71c3ad 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -72,6 +72,9 @@ extern void init_locale( HMODULE module ) DECLSPEC_HIDDEN;
|
||||
extern void init_user_process_params( SIZE_T data_size ) DECLSPEC_HIDDEN;
|
||||
@@ -71,6 +71,9 @@ extern void init_locale( HMODULE module ) DECLSPEC_HIDDEN;
|
||||
extern void init_user_process_params(void) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS restart_process( RTL_USER_PROCESS_PARAMETERS *params, NTSTATUS status ) DECLSPEC_HIDDEN;
|
||||
|
||||
+/* token */
|
||||
@ -71,10 +71,10 @@ index b1cc307d2ae..2e5fee216ef 100644
|
||||
* NtQueryInformationProcess [NTDLL.@]
|
||||
* ZwQueryInformationProcess [NTDLL.@]
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 6e0f309450a..7315f8ac4ea 100644
|
||||
index 62c93423104..4001b3cd095 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3755,6 +3755,14 @@ struct handle_info
|
||||
@@ -3757,6 +3757,14 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
|
@ -1,38 +1,38 @@
|
||||
From 708e627172f61b5d0744135e31d4e9e3f7b32536 Mon Sep 17 00:00:00 2001
|
||||
From 803d1e468279ef5efc5f8f872e2fb9db2466cd75 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 3 Apr 2017 01:06:26 +0200
|
||||
Subject: [PATCH] ntdll: Add dummy apiset to PEB.
|
||||
|
||||
---
|
||||
dlls/ntdll/thread.c | 2 ++
|
||||
dlls/ntdll/loader.c | 2 ++
|
||||
include/Makefile.in | 1 +
|
||||
include/apiset.h | 37 +++++++++++++++++++++++++++++++++++++
|
||||
include/winternl.h | 3 ++-
|
||||
4 files changed, 42 insertions(+), 1 deletion(-)
|
||||
create mode 100644 include/apiset.h
|
||||
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index 21e8b0c08f8..24254d4b43c 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -71,6 +71,7 @@ static PEB_LDR_DATA ldr;
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index bd19474e844..00a146278a5 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -166,6 +166,7 @@ static PEB_LDR_DATA ldr = { sizeof(ldr), TRUE };
|
||||
static RTL_BITMAP tls_bitmap;
|
||||
static RTL_BITMAP tls_expansion_bitmap;
|
||||
static RTL_BITMAP fls_bitmap;
|
||||
+static API_SET_NAMESPACE_ARRAY apiset_map;
|
||||
static int nb_threads = 1;
|
||||
|
||||
struct ldt_copy *__wine_ldt_copy = NULL;
|
||||
@@ -300,6 +301,7 @@ TEB *thread_init(void)
|
||||
static CRITICAL_SECTION fls_section;
|
||||
static CRITICAL_SECTION_DEBUG fls_critsect_debug =
|
||||
@@ -4016,6 +4017,7 @@ void __wine_process_init(void)
|
||||
|
||||
peb = teb->Peb;
|
||||
peb->LdrData = &ldr;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
+ peb->ApiSetMap = &apiset_map;
|
||||
peb->TlsBitmap = &tls_bitmap;
|
||||
peb->TlsExpansionBitmap = &tls_expansion_bitmap;
|
||||
peb->FlsBitmap = &fls_bitmap;
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 9796dd8e5d9..2bc410f4308 100644
|
||||
index 90fb873f203..015ad7c6942 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -15,6 +15,7 @@ SOURCES = \
|
||||
@ -87,7 +87,7 @@ index 00000000000..6801cd5f509
|
||||
+
|
||||
+#endif
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index f362790dbca..b33e346885f 100644
|
||||
index 9a70a2014f1..1d3ef1f5adb 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -23,6 +23,7 @@
|
||||
@ -108,5 +108,5 @@ index f362790dbca..b33e346885f 100644
|
||||
PRTL_BITMAP TlsBitmap; /* 040/078 */
|
||||
ULONG TlsBitmapBits[2]; /* 044/080 */
|
||||
--
|
||||
2.26.2
|
||||
2.27.0
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
Fixes: [44658] Add dummy apiset to PEB struct
|
||||
Depends: ntdll-FLS_Callbacks
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 96a5e54b5f72d99a9c3d03ac4c5800fe324e44c0 Mon Sep 17 00:00:00 2001
|
||||
From 44e9e950fc95d382d7a1038743e54d897da94107 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <pgofman@codeweavers.com>
|
||||
Date: Thu, 23 Apr 2020 14:32:23 +0300
|
||||
Subject: [PATCH] kernelbase: Maintain FLS storage list in PEB.
|
||||
@ -92,7 +92,7 @@ index b91d279e327..924f19703bf 100644
|
||||
test_threadpool();
|
||||
}
|
||||
diff --git a/dlls/kernelbase/thread.c b/dlls/kernelbase/thread.c
|
||||
index f44f2ff6538..3423fe8c727 100644
|
||||
index f20d460d07d..3c77b6a42f4 100644
|
||||
--- a/dlls/kernelbase/thread.c
|
||||
+++ b/dlls/kernelbase/thread.c
|
||||
@@ -38,6 +38,10 @@
|
||||
@ -106,7 +106,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
|
||||
/***********************************************************************
|
||||
* Threads
|
||||
@@ -928,6 +932,19 @@ static void init_fiber_context( struct fiber_data *fiber )
|
||||
@@ -915,6 +919,19 @@ static void init_fiber_context( struct fiber_data *fiber )
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
|
||||
/***********************************************************************
|
||||
* CreateFiber (kernelbase.@)
|
||||
@@ -1035,7 +1052,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
|
||||
@@ -1022,7 +1039,16 @@ void WINAPI DECLSPEC_HOTPATCH DeleteFiber( LPVOID fiber_ptr )
|
||||
RtlExitUserThread( 1 );
|
||||
}
|
||||
RtlFreeUserStack( fiber->stack_allocation );
|
||||
@ -144,7 +144,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
HeapFree( GetProcessHeap(), 0, fiber );
|
||||
}
|
||||
|
||||
@@ -1057,6 +1083,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
|
||||
@@ -1044,6 +1070,19 @@ void WINAPI DECLSPEC_HOTPATCH SwitchToFiber( LPVOID fiber )
|
||||
struct fiber_data *new_fiber = fiber;
|
||||
struct fiber_data *current_fiber = NtCurrentTeb()->Tib.u.FiberData;
|
||||
|
||||
@ -164,7 +164,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
current_fiber->except = NtCurrentTeb()->Tib.ExceptionList;
|
||||
current_fiber->stack_limit = NtCurrentTeb()->Tib.StackLimit;
|
||||
current_fiber->fls_slots = NtCurrentTeb()->FlsSlots;
|
||||
@@ -1082,9 +1121,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
@@ -1069,9 +1108,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
PEB * const peb = NtCurrentTeb()->Peb;
|
||||
|
||||
RtlAcquirePebLock();
|
||||
@ -175,7 +175,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
{
|
||||
SetLastError( ERROR_NOT_ENOUGH_MEMORY );
|
||||
index = FLS_OUT_OF_INDEXES;
|
||||
@@ -1094,9 +1131,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
@@ -1081,9 +1118,7 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
index = RtlFindClearBitsAndSet( peb->FlsBitmap, 1, 1 );
|
||||
if (index != ~0U)
|
||||
{
|
||||
@ -186,7 +186,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
{
|
||||
RtlClearBits( peb->FlsBitmap, index, 1 );
|
||||
index = FLS_OUT_OF_INDEXES;
|
||||
@@ -1104,8 +1139,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
@@ -1091,8 +1126,8 @@ DWORD WINAPI DECLSPEC_HOTPATCH FlsAlloc( PFLS_CALLBACK_FUNCTION callback )
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -197,7 +197,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
}
|
||||
}
|
||||
else SetLastError( ERROR_NO_MORE_ITEMS );
|
||||
@@ -1129,7 +1164,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
|
||||
@@ -1116,7 +1151,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsFree( DWORD index )
|
||||
{
|
||||
/* FIXME: call Fls callback */
|
||||
/* FIXME: add equivalent of ThreadZeroTlsCell here */
|
||||
@ -206,7 +206,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
}
|
||||
else SetLastError( ERROR_INVALID_PARAMETER );
|
||||
RtlReleasePebLock();
|
||||
@@ -1148,7 +1183,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
|
||||
@@ -1135,7 +1170,7 @@ PVOID WINAPI DECLSPEC_HOTPATCH FlsGetValue( DWORD index )
|
||||
return NULL;
|
||||
}
|
||||
SetLastError( ERROR_SUCCESS );
|
||||
@ -215,7 +215,7 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
}
|
||||
|
||||
|
||||
@@ -1162,14 +1197,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
|
||||
@@ -1149,14 +1184,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH FlsSetValue( DWORD index, PVOID data )
|
||||
SetLastError( ERROR_INVALID_PARAMETER );
|
||||
return FALSE;
|
||||
}
|
||||
@ -233,12 +233,12 @@ index f44f2ff6538..3423fe8c727 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index b884b43b154..c0a18669590 100644
|
||||
index efacc0c081e..e61c6e5abc7 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -153,6 +153,15 @@ static CRITICAL_SECTION_DEBUG dlldir_critsect_debug =
|
||||
};
|
||||
static CRITICAL_SECTION dlldir_section = { &dlldir_critsect_debug, -1, 0, 0, 0, 0 };
|
||||
@@ -167,6 +167,15 @@ static RTL_BITMAP tls_bitmap;
|
||||
static RTL_BITMAP tls_expansion_bitmap;
|
||||
static RTL_BITMAP fls_bitmap;
|
||||
|
||||
+static CRITICAL_SECTION fls_section;
|
||||
+static CRITICAL_SECTION_DEBUG fls_critsect_debug =
|
||||
@ -252,7 +252,7 @@ index b884b43b154..c0a18669590 100644
|
||||
static WINE_MODREF *cached_modref;
|
||||
static WINE_MODREF *current_modref;
|
||||
static WINE_MODREF *last_failed_modref;
|
||||
@@ -193,6 +202,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
|
||||
@@ -207,6 +216,16 @@ static RTL_UNLOAD_EVENT_TRACE unload_traces[RTL_UNLOAD_EVENT_TRACE_NUMBER];
|
||||
static RTL_UNLOAD_EVENT_TRACE *unload_trace_ptr;
|
||||
static unsigned int unload_trace_seq;
|
||||
|
||||
@ -269,7 +269,7 @@ index b884b43b154..c0a18669590 100644
|
||||
static void module_push_unload_trace( const LDR_DATA_TABLE_ENTRY *ldr )
|
||||
{
|
||||
RTL_UNLOAD_EVENT_TRACE *ptr = &unload_traces[unload_trace_seq];
|
||||
@@ -3187,6 +3206,13 @@ void WINAPI LdrShutdownThread(void)
|
||||
@@ -3201,6 +3220,13 @@ void WINAPI LdrShutdownThread(void)
|
||||
/* don't do any detach calls if process is exiting */
|
||||
if (process_detaching) return;
|
||||
|
||||
@ -283,7 +283,7 @@ index b884b43b154..c0a18669590 100644
|
||||
RtlEnterCriticalSection( &loader_section );
|
||||
wm = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
|
||||
|
||||
@@ -3400,6 +3426,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
|
||||
@@ -3414,6 +3440,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule)
|
||||
*/
|
||||
void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
@ -291,7 +291,7 @@ index b884b43b154..c0a18669590 100644
|
||||
static int attach_done;
|
||||
int i;
|
||||
NTSTATUS status;
|
||||
@@ -3435,6 +3462,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
|
||||
@@ -3449,6 +3476,25 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
|
||||
InsertHeadList( &tls_links, &NtCurrentTeb()->TlsLinks );
|
||||
RtlReleasePebLock();
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 250b8699aa64096bb4b38d454c03b57afe91a619 Mon Sep 17 00:00:00 2001
|
||||
From 54796a7cba6fd2017c4826874ccd09a9662aff00 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 3 Apr 2017 05:30:27 +0200
|
||||
Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
|
||||
@ -115,7 +115,7 @@ index 59965984a67..95f18fb71e3 100644
|
||||
test_Loader();
|
||||
}
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 42cdc628021..df8e0c69185 100644
|
||||
index efacc0c081e..b0b5c93b41b 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -121,6 +121,9 @@ struct file_id
|
||||
@ -128,7 +128,7 @@ index 42cdc628021..df8e0c69185 100644
|
||||
/* internal representation of loaded modules */
|
||||
typedef struct _wine_modref
|
||||
{
|
||||
@@ -446,6 +449,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
@@ -460,6 +463,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
}
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@ index 42cdc628021..df8e0c69185 100644
|
||||
/*************************************************************************
|
||||
* get_modref
|
||||
*
|
||||
@@ -1188,7 +1237,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
@@ -1202,7 +1251,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
&wm->ldr.InLoadOrderLinks);
|
||||
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
|
||||
&wm->ldr.InMemoryOrderLinks);
|
||||
@ -194,7 +194,7 @@ index 42cdc628021..df8e0c69185 100644
|
||||
|
||||
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
|
||||
{
|
||||
@@ -1894,6 +1948,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
@@ -1908,6 +1962,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
/* the module has only be inserted in the load & memory order lists */
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
@ -202,7 +202,7 @@ index 42cdc628021..df8e0c69185 100644
|
||||
|
||||
/* FIXME: there are several more dangling references
|
||||
* left. Including dlls loaded by this dll before the
|
||||
@@ -3226,6 +3281,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
@@ -3244,6 +3299,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
{
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
@ -210,15 +210,15 @@ index 42cdc628021..df8e0c69185 100644
|
||||
if (wm->ldr.InInitializationOrderLinks.Flink)
|
||||
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
|
||||
|
||||
@@ -3945,6 +4001,7 @@ void __wine_process_init(void)
|
||||
SIZE_T info_size;
|
||||
TEB *teb;
|
||||
PEB *peb;
|
||||
@@ -3937,6 +3993,7 @@ void __wine_process_init(void)
|
||||
ULONG_PTR val;
|
||||
TEB *teb = NtCurrentTeb();
|
||||
PEB *peb = teb->Peb;
|
||||
+ DWORD i;
|
||||
|
||||
if (!unix_funcs) load_ntdll_so( ntdll_module, &__wine_spec_nt_header );
|
||||
|
||||
@@ -3961,6 +4018,10 @@ void __wine_process_init(void)
|
||||
peb->LdrData = &ldr;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
@@ -3974,6 +4031,10 @@ void __wine_process_init(void)
|
||||
load_global_options();
|
||||
version_init();
|
||||
|
||||
@ -229,7 +229,7 @@ index 42cdc628021..df8e0c69185 100644
|
||||
/* setup the load callback and create ntdll modref */
|
||||
RtlInitUnicodeString( &nt_name, ntdllW );
|
||||
status = build_so_dll_module( params->DllPath.Buffer, &nt_name, ntdll_module, 0, &wm );
|
||||
@@ -4034,6 +4095,9 @@ void __wine_process_init(void)
|
||||
@@ -4047,6 +4108,9 @@ void __wine_process_init(void)
|
||||
teb->Tib.StackLimit = stack.StackLimit;
|
||||
teb->DeallocationStack = stack.DeallocationStack;
|
||||
|
||||
@ -240,10 +240,10 @@ index 42cdc628021..df8e0c69185 100644
|
||||
}
|
||||
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 3ff15f28c15..59e9eddd26d 100644
|
||||
index 9a70a2014f1..424481b1a6d 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -2369,8 +2369,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
|
||||
@@ -2370,8 +2370,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
|
||||
ULONG Flags;
|
||||
SHORT LoadCount;
|
||||
SHORT TlsIndex;
|
||||
|
@ -1,2 +1,4 @@
|
||||
Fixes: [48291] Detroit: Become Human crashes on launch
|
||||
Depends: winebuild-Fake_Dlls
|
||||
# Re-enable me when winebuild-Fake_Dlls gets re-enabled!
|
||||
Disabled: true
|
||||
|
@ -1 +1,3 @@
|
||||
Fixes: Fix race-condition when threads are killed during shutdown
|
||||
# Needs careful review to determine if this is still needed. Deferring.
|
||||
Disabled: true
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "13b2587d4f55d64a1381c60ac34acf4abe6bb1e8"
|
||||
echo "ec9e556d31278d2de28b8ba82a063dc9fffdb440"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -189,13 +189,11 @@ patch_enable_all ()
|
||||
enable_ntdll_RtlQueryRegistryValuesEx="$1"
|
||||
enable_ntdll_Serial_Port_Detection="$1"
|
||||
enable_ntdll_Status_Mapping="$1"
|
||||
enable_ntdll_Syscall_Emulation="$1"
|
||||
enable_ntdll_SystemCodeIntegrityInformation="$1"
|
||||
enable_ntdll_SystemExtendedProcessInformation="$1"
|
||||
enable_ntdll_SystemInterruptInformation="$1"
|
||||
enable_ntdll_SystemModuleInformation="$1"
|
||||
enable_ntdll_SystemRoot_Symlink="$1"
|
||||
enable_ntdll_Threading="$1"
|
||||
enable_ntdll_WRITECOPY="$1"
|
||||
enable_ntdll_Zero_mod_name="$1"
|
||||
enable_ntdll_aarch_TEB="$1"
|
||||
@ -280,7 +278,6 @@ patch_enable_all ()
|
||||
enable_wineboot_HKEY_DYN_DATA="$1"
|
||||
enable_wineboot_ProxySettings="$1"
|
||||
enable_wineboot_drivers_etc_Stubs="$1"
|
||||
enable_winebuild_Fake_Dlls="$1"
|
||||
enable_winecfg_Libraries="$1"
|
||||
enable_winecfg_Staging="$1"
|
||||
enable_wined3d_Accounting="$1"
|
||||
@ -654,9 +651,6 @@ patch_enable ()
|
||||
ntdll-Status_Mapping)
|
||||
enable_ntdll_Status_Mapping="$2"
|
||||
;;
|
||||
ntdll-Syscall_Emulation)
|
||||
enable_ntdll_Syscall_Emulation="$2"
|
||||
;;
|
||||
ntdll-SystemCodeIntegrityInformation)
|
||||
enable_ntdll_SystemCodeIntegrityInformation="$2"
|
||||
;;
|
||||
@ -672,9 +666,6 @@ patch_enable ()
|
||||
ntdll-SystemRoot_Symlink)
|
||||
enable_ntdll_SystemRoot_Symlink="$2"
|
||||
;;
|
||||
ntdll-Threading)
|
||||
enable_ntdll_Threading="$2"
|
||||
;;
|
||||
ntdll-WRITECOPY)
|
||||
enable_ntdll_WRITECOPY="$2"
|
||||
;;
|
||||
@ -927,9 +918,6 @@ patch_enable ()
|
||||
wineboot-drivers_etc_Stubs)
|
||||
enable_wineboot_drivers_etc_Stubs="$2"
|
||||
;;
|
||||
winebuild-Fake_Dlls)
|
||||
enable_winebuild_Fake_Dlls="$2"
|
||||
;;
|
||||
winecfg-Libraries)
|
||||
enable_winecfg_Libraries="$2"
|
||||
;;
|
||||
@ -1584,28 +1572,6 @@ if test "$enable_ntdll_SystemCodeIntegrityInformation" -eq 1; then
|
||||
enable_ntdll_SystemExtendedProcessInformation=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
|
||||
if test "$enable_winebuild_Fake_Dlls" -gt 1; then
|
||||
abort "Patchset winebuild-Fake_Dlls disabled, but ntdll-Syscall_Emulation depends on that."
|
||||
fi
|
||||
enable_winebuild_Fake_Dlls=1
|
||||
fi
|
||||
|
||||
if test "$enable_winebuild_Fake_Dlls" -eq 1; then
|
||||
if test "$enable_ntdll_ApiSetMap" -gt 1; then
|
||||
abort "Patchset ntdll-ApiSetMap disabled, but winebuild-Fake_Dlls depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_WRITECOPY" -gt 1; then
|
||||
abort "Patchset ntdll-WRITECOPY disabled, but winebuild-Fake_Dlls depends on that."
|
||||
fi
|
||||
if test "$enable_ws2_32_WSACleanup" -gt 1; then
|
||||
abort "Patchset ws2_32-WSACleanup disabled, but winebuild-Fake_Dlls depends on that."
|
||||
fi
|
||||
enable_ntdll_ApiSetMap=1
|
||||
enable_ntdll_WRITECOPY=1
|
||||
enable_ws2_32_WSACleanup=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_NtDevicePath" -eq 1; then
|
||||
if test "$enable_ntdll_Pipe_SpecialCharacters" -gt 1; then
|
||||
abort "Patchset ntdll-Pipe_SpecialCharacters disabled, but ntdll-NtDevicePath depends on that."
|
||||
@ -1627,6 +1593,13 @@ if test "$enable_ntdll_Builtin_Prot" -eq 1; then
|
||||
enable_ntdll_WRITECOPY=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_ApiSetMap" -eq 1; then
|
||||
if test "$enable_ntdll_FLS_Callbacks" -gt 1; then
|
||||
abort "Patchset ntdll-FLS_Callbacks disabled, but ntdll-ApiSetMap depends on that."
|
||||
fi
|
||||
enable_ntdll_FLS_Callbacks=1
|
||||
fi
|
||||
|
||||
if test "$enable_kernel32_Processor_Group" -eq 1; then
|
||||
if test "$enable_api_ms_win_Stub_DLLs" -gt 1; then
|
||||
abort "Patchset api-ms-win-Stub_DLLs disabled, but kernel32-Processor_Group depends on that."
|
||||
@ -3331,13 +3304,42 @@ if test "$enable_ntdll_Activation_Context" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-FLS_Callbacks
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#49012] Application build with .NET CoreRT crashes due to FLS callbacks not being called
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/fiber.c, dlls/kernel32/tests/loader.c, dlls/kernel32/tests/thread.c, dlls/kernelbase/thread.c,
|
||||
# | dlls/ntdll/loader.c
|
||||
# |
|
||||
if test "$enable_ntdll_FLS_Callbacks" -eq 1; then
|
||||
patch_apply ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0002-kernelbase-Don-t-use-PEB-lock-for-FLS-data.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0003-kernelbase-Zero-all-FLS-slots-instances-in-FlsFree.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0004-ntdll-Call-FLS-callbacks-on-thread-shutdown.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0005-kernelbase-Call-FLS-callbacks-from-FlsFree.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0006-kernelbase-Call-FLS-callbacks-from-DeleteFiber.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Maintain FLS storage list in PEB.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Don'\''t use PEB lock for FLS data.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Zero all FLS slots instances in FlsFree().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Call FLS callbacks on thread shutdown.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Call FLS callbacks from FlsFree().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Call FLS callbacks from DeleteFiber().", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-ApiSetMap
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-FLS_Callbacks
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#44658] Add dummy apiset to PEB struct
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/thread.c, include/Makefile.in, include/apiset.h, include/winternl.h
|
||||
# | * dlls/ntdll/loader.c, include/Makefile.in, include/apiset.h, include/winternl.h
|
||||
# |
|
||||
if test "$enable_ntdll_ApiSetMap" -eq 1; then
|
||||
patch_apply ntdll-ApiSetMap/0001-ntdll-Add-dummy-apiset-to-PEB.patch
|
||||
@ -3486,32 +3488,6 @@ if test "$enable_ntdll_Exception" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-FLS_Callbacks
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#49012] Application build with .NET CoreRT crashes due to FLS callbacks not being called
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/fiber.c, dlls/kernel32/tests/loader.c, dlls/kernel32/tests/thread.c, dlls/kernelbase/thread.c,
|
||||
# | dlls/ntdll/loader.c
|
||||
# |
|
||||
if test "$enable_ntdll_FLS_Callbacks" -eq 1; then
|
||||
patch_apply ntdll-FLS_Callbacks/0001-kernelbase-Maintain-FLS-storage-list-in-PEB.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0002-kernelbase-Don-t-use-PEB-lock-for-FLS-data.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0003-kernelbase-Zero-all-FLS-slots-instances-in-FlsFree.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0004-ntdll-Call-FLS-callbacks-on-thread-shutdown.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0005-kernelbase-Call-FLS-callbacks-from-FlsFree.patch
|
||||
patch_apply ntdll-FLS_Callbacks/0006-kernelbase-Call-FLS-callbacks-from-DeleteFiber.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Maintain FLS storage list in PEB.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Don'\''t use PEB lock for FLS data.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Zero all FLS slots instances in FlsFree().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Call FLS callbacks on thread shutdown.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Call FLS callbacks from FlsFree().", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "kernelbase: Call FLS callbacks from DeleteFiber().", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-FileFsFullSizeInformation
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -3822,96 +3798,6 @@ if test "$enable_ntdll_Status_Mapping" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ws2_32-WSACleanup
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#18670] Properly close sockets when WSACleanup is called
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
|
||||
# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
|
||||
# | include/wine/server.h, server/protocol.def, server/sock.c
|
||||
# |
|
||||
if test "$enable_ws2_32_WSACleanup" -eq 1; then
|
||||
patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
|
||||
patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset winebuild-Fake_Dlls
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ApiSetMap, ntdll-WRITECOPY, ws2_32-WSACleanup
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#21232] Chromium-based browser engines (Chrome, Opera, Comodo Dragon, SRWare Iron) crash on startup unless '--no-
|
||||
# | sandbox' is used (native API sandboxing/hooking scheme incompatible with Wine)
|
||||
# | * [#42741] StarCraft I: 1.18 PTR fails to initialize ClientSdk.dll
|
||||
# | * [#45349] Multiple applications and games crash due to missing support for 64-bit syscall thunks (StreetFighter V)
|
||||
# | * [#45573] League of Legends 8.12+ fails to start a game (anticheat engine, hooking of syscall return instructions)
|
||||
# | * [#45650] chromium 32-bit sandbox expects different syscall thunks depending on Windows version
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/dbghelp/cpu_i386.c, dlls/kernel32/tests/loader.c, dlls/krnl386.exe16/kernel.c,
|
||||
# | dlls/krnl386.exe16/kernel16_private.h, dlls/krnl386.exe16/ne_module.c, dlls/krnl386.exe16/ne_segment.c,
|
||||
# | dlls/krnl386.exe16/task.c, dlls/krnl386.exe16/thunk.c, dlls/krnl386.exe16/wowthunk.c, dlls/ntdll/actctx.c,
|
||||
# | dlls/ntdll/loader.c, dlls/ntdll/locale.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/path.c, dlls/ntdll/signal_i386.c,
|
||||
# | dlls/ntdll/tests/exception.c, dlls/ntdll/thread.c, dlls/ntdll/unix/signal_i386.c, dlls/ntdll/unix/thread.c,
|
||||
# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, dlls/system.drv16/system.c,
|
||||
# | dlls/toolhelp.dll16/toolhelp.c, dlls/user.exe16/message.c, dlls/user.exe16/user.c, dlls/user.exe16/window.c,
|
||||
# | include/winternl.h, libs/wine/loader.c, server/mapping.c, tools/winebuild/build.h, tools/winebuild/import.c,
|
||||
# | tools/winebuild/parser.c, tools/winebuild/relay.c, tools/winebuild/res32.c, tools/winebuild/spec16.c,
|
||||
# | tools/winebuild/spec32.c, tools/winebuild/utils.c
|
||||
# |
|
||||
if test "$enable_winebuild_Fake_Dlls" -eq 1; then
|
||||
patch_apply winebuild-Fake_Dlls/0001-kernel32-tests-Add-basic-tests-for-fake-dlls.patch
|
||||
patch_apply winebuild-Fake_Dlls/0002-krnl386.exe16-Do-not-abuse-WOW32Reserved-field-for-1.patch
|
||||
patch_apply winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch
|
||||
patch_apply winebuild-Fake_Dlls/0004-winebuild-Use-multipass-label-system-to-generate-fak.patch
|
||||
patch_apply winebuild-Fake_Dlls/0005-winebuild-Add-stub-functions-in-fake-dlls.patch
|
||||
patch_apply winebuild-Fake_Dlls/0006-winebuild-Add-syscall-thunks-in-fake-dlls.patch
|
||||
patch_apply winebuild-Fake_Dlls/0007-winebuild-Fix-size-of-relocation-information-in-fake.patch
|
||||
patch_apply winebuild-Fake_Dlls/0008-winebuild-Try-to-make-sure-RVA-matches-between-fake-.patch
|
||||
patch_apply winebuild-Fake_Dlls/0009-libs-wine-Use-same-file-alignment-for-fake-and-built.patch
|
||||
patch_apply winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch
|
||||
patch_apply winebuild-Fake_Dlls/0011-ntdll-Call-NtOpenFile-through-syscall-thunk.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "kernel32/tests: Add basic tests for fake dlls.", 1 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "krnl386.exe16: Do not abuse WOW32Reserved field for 16-bit stack address.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Generate syscall thunks for ntdll exports.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Use multipass label system to generate fake dlls.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Add stub functions in fake dlls.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Add syscall thunks in fake dlls.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Fix size of relocation information in fake dlls.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "winebuild: Try to make sure RVA matches between fake and builtin DLLs.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "libs/wine: Use same file alignment for fake and builtin DLLs.", 1 },';
|
||||
printf '%s\n' '+ { "Michael Müller", "tools/winebuild: Add syscall thunks for 64 bit.", 1 },';
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Call NtOpenFile through syscall thunk.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Syscall_Emulation
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * ntdll-ApiSetMap, ntdll-WRITECOPY, ws2_32-WSACleanup, winebuild-Fake_Dlls
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#48291] Detroit: Become Human crashes on launch
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/ntdll/thread.c, dlls/ntdll/unix/signal_x86_64.c, dlls/ntdll/unix/thread.c,
|
||||
# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, tools/winebuild/spec32.c
|
||||
# |
|
||||
if test "$enable_ntdll_Syscall_Emulation" -eq 1; then
|
||||
patch_apply ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Paul Gofman", "ntdll: Support x86_64 syscall emulation.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-SystemExtendedProcessInformation
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -3995,18 +3881,6 @@ if test "$enable_ntdll_SystemRoot_Symlink" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Threading
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/thread.c, dlls/ntdll/unix/thread.c
|
||||
# |
|
||||
if test "$enable_ntdll_Threading" -eq 1; then
|
||||
patch_apply ntdll-Threading/0001-ntdll-Fix-race-condition-when-threads-are-killed-dur.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Fix race-condition when threads are killed during shutdown.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ntdll-Zero_mod_name
|
||||
# |
|
||||
# | Modified files:
|
||||
@ -4333,6 +4207,25 @@ if test "$enable_riched20_IText_Interface" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset ws2_32-WSACleanup
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#18670] Properly close sockets when WSACleanup is called
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/server.c, dlls/ntdll/unix/loader.c, dlls/ntdll/unix/server.c,
|
||||
# | dlls/ntdll/unix/unix_private.h, dlls/ntdll/unixlib.h, dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c,
|
||||
# | include/wine/server.h, server/protocol.def, server/sock.c
|
||||
# |
|
||||
if test "$enable_ws2_32_WSACleanup" -eq 1; then
|
||||
patch_apply ws2_32-WSACleanup/0001-ws2_32-Proper-WSACleanup-implementation-using-winese.patch
|
||||
patch_apply ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Matt Durgavich", "ws2_32: Proper WSACleanup implementation using wineserver function.", 2 },';
|
||||
printf '%s\n' '+ { "Sebastian Lackner", "ws2_32: Invalidate client-side file descriptor cache in WSACleanup.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset server-Desktop_Refcount
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
|
@ -6,3 +6,13 @@ Fixes: [45650] chromium 32-bit sandbox expects different syscall thunks dependin
|
||||
Depends: ntdll-WRITECOPY
|
||||
Depends: ws2_32-WSACleanup
|
||||
Depends: ntdll-ApiSetMap
|
||||
|
||||
# As of 43be3507c04, unless I've misread, ntdll.dll no longer has the chance to
|
||||
# run code before ntdll.so performs process initialization. Unfortunately,
|
||||
# ntdll.so is still making calls to Nt* exports during that process
|
||||
# initialization, which in practice means it's calling syscall thunks. In order
|
||||
# for this series to work, we need to poke __wine_syscall_dispatcher into the
|
||||
# TEB before those calls are made. Fixing this would require a nontrivial amount
|
||||
# of effort, which will be obviated as soon as Alexandre finishes splitting
|
||||
# ntdll upstream.
|
||||
Disabled: true
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 384a965d9dd8ad2d946682e45c409795bba292a2 Mon Sep 17 00:00:00 2001
|
||||
From 5dc9d48bb56202065ebbf2888834f138505bb6a7 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 8 Aug 2018 20:00:15 -0500
|
||||
Subject: [PATCH] ntdll: Add a stub implementation of Wow64Transition.
|
||||
@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Add a stub implementation of Wow64Transition.
|
||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 42b681e4cd3..c8cdf4f5436 100644
|
||||
index c471755139f..57f1805bf18 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -4324,6 +4324,7 @@ NTSTATUS WINAPI NtLoadDriver( const UNICODE_STRING *DriverServiceName )
|
||||
@@ -3918,6 +3918,7 @@ NTSTATUS WINAPI NtLoadDriver( const UNICODE_STRING *DriverServiceName )
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
@ -20,7 +20,7 @@ index 42b681e4cd3..c8cdf4f5436 100644
|
||||
|
||||
/***********************************************************************
|
||||
* NtUnloadDriver (NTDLL.@)
|
||||
@@ -4382,13 +4383,16 @@ void __wine_process_init(void)
|
||||
@@ -3949,13 +3950,16 @@ void __wine_process_init(void)
|
||||
static const WCHAR ntdllW[] = {'\\','?','?','\\','C',':','\\','w','i','n','d','o','w','s','\\',
|
||||
's','y','s','t','e','m','3','2','\\',
|
||||
'n','t','d','l','l','.','d','l','l',0};
|
||||
@ -38,9 +38,9 @@ index 42b681e4cd3..c8cdf4f5436 100644
|
||||
NTSTATUS status;
|
||||
ANSI_STRING func_name;
|
||||
UNICODE_STRING nt_name;
|
||||
@@ -4431,6 +4435,13 @@ void __wine_process_init(void)
|
||||
@@ -4012,6 +4016,13 @@ void __wine_process_init(void)
|
||||
MESSAGE( "wine: could not load kernel32.dll, status %x\n", status );
|
||||
exit(1);
|
||||
NtTerminateProcess( GetCurrentProcess(), status );
|
||||
}
|
||||
+
|
||||
+ RtlInitUnicodeString( &nt_name, wow64cpuW );
|
||||
@ -53,7 +53,7 @@ index 42b681e4cd3..c8cdf4f5436 100644
|
||||
if ((status = LdrGetProcedureAddress( wm->ldr.DllBase, &func_name,
|
||||
0, (void **)&kernel32_start_process )) != STATUS_SUCCESS)
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index e313d5807b3..b20ded3d108 100644
|
||||
index f3e765e25a1..4d448dc8f37 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1112,6 +1112,7 @@
|
||||
@ -65,5 +65,5 @@ index e313d5807b3..b20ded3d108 100644
|
||||
@ stdcall -private ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck
|
||||
@ stdcall -private ZwAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) NtAccessCheckAndAuditAlarm
|
||||
--
|
||||
2.26.2
|
||||
2.27.0
|
||||
|
||||
|
@ -1 +1 @@
|
||||
13b2587d4f55d64a1381c60ac34acf4abe6bb1e8
|
||||
ec9e556d31278d2de28b8ba82a063dc9fffdb440
|
||||
|
Loading…
Reference in New Issue
Block a user