mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against fdac39f697e049ead215b164bfe6953269ffa7be.
This commit is contained in:
parent
8859da7cbd
commit
3b068197d3
@ -1,4 +1,4 @@
|
||||
From 7b7147df179554c5701f5d759a7b161d79ef90f3 Mon Sep 17 00:00:00 2001
|
||||
From e15be9d22652dbf7ef027ce5f3ef3faa42139c7a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 03:39:55 +0200
|
||||
Subject: ntdll: Implement process token elevation through manifests.
|
||||
@ -12,13 +12,14 @@ Subject: ntdll: Implement process token elevation through manifests.
|
||||
5 files changed, 67 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index a09eca9db75..2f6bcbde8fe 100644
|
||||
index cdf8d586c36..5162e2fc0ec 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -3632,6 +3632,32 @@ static void load_global_options(void)
|
||||
@@ -3095,6 +3095,32 @@ static void load_global_options(void)
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
+/***********************************************************************
|
||||
+ * elevate_process
|
||||
+ */
|
||||
+static void elevate_process( void )
|
||||
@ -44,11 +45,10 @@ index a09eca9db75..2f6bcbde8fe 100644
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/***********************************************************************
|
||||
/***********************************************************************
|
||||
* start_process
|
||||
*/
|
||||
static void start_process( void *arg )
|
||||
@@ -3679,6 +3705,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3111,6 +3137,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
static const WCHAR globalflagW[] = {'G','l','o','b','a','l','F','l','a','g',0};
|
||||
@ -56,7 +56,7 @@ index a09eca9db75..2f6bcbde8fe 100644
|
||||
LARGE_INTEGER timeout;
|
||||
NTSTATUS status;
|
||||
WINE_MODREF *wm;
|
||||
@@ -3725,6 +3752,16 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3154,6 +3181,16 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
if ((status = fixup_imports( wm, load_path )) != STATUS_SUCCESS) goto error;
|
||||
heap_set_debug_flags( GetProcessHeap() );
|
||||
|
||||
@ -70,14 +70,14 @@ index a09eca9db75..2f6bcbde8fe 100644
|
||||
+ elevate_process(); /* FIXME: the process exists with a wrong token for a short time */
|
||||
+ }
|
||||
+
|
||||
/* Store original entrypoint (in case it gets corrupted) */
|
||||
start_params.kernel_start = kernel_start;
|
||||
start_params.entry = wm->ldr.EntryPoint;
|
||||
status = wine_call_on_stack( attach_process_dlls, wm, (char *)NtCurrentTeb()->Tib.StackBase - page_size );
|
||||
if (status != STATUS_SUCCESS) goto error;
|
||||
|
||||
diff --git a/server/process.c b/server/process.c
|
||||
index f0f60edcd3f..74675d343b4 100644
|
||||
index f8969433ede..10cf39d8962 100644
|
||||
--- a/server/process.c
|
||||
+++ b/server/process.c
|
||||
@@ -1146,6 +1146,14 @@ struct process_snapshot *process_snap( int *count )
|
||||
@@ -1136,6 +1136,14 @@ struct process_snapshot *process_snap( int *count )
|
||||
return snapshot;
|
||||
}
|
||||
|
||||
@ -105,10 +105,10 @@ index 548796f9c22..262eb59627b 100644
|
||||
/* console functions */
|
||||
extern void inherit_console(struct thread *parent_thread, struct process *process, obj_handle_t hconin);
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 300f23fb9b6..e5b598259f7 100644
|
||||
index 7590541ac8a..55cc768d21a 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3696,6 +3696,13 @@ struct handle_info
|
||||
@@ -3610,6 +3610,13 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
@ -123,10 +123,10 @@ index 300f23fb9b6..e5b598259f7 100644
|
||||
@REQ(create_completion)
|
||||
unsigned int access; /* desired access to a port */
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index c9d36a5b4f3..385ea3bbfda 100644
|
||||
index 7abd92386ea..49e84362a83 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -1822,3 +1822,17 @@ DECL_HANDLER(create_token)
|
||||
@@ -1813,3 +1813,17 @@ DECL_HANDLER(create_token)
|
||||
release_object( token );
|
||||
}
|
||||
}
|
||||
@ -145,5 +145,5 @@ index c9d36a5b4f3..385ea3bbfda 100644
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.13.1
|
||||
2.14.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6ef722e8ff0af86432f13d5082369afdead6645c Mon Sep 17 00:00:00 2001
|
||||
From 4094c085cdc00864407b844720170fd619ce8c8c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 3 Jun 2015 22:57:21 +0200
|
||||
Subject: winex11.drv: Allow changing the opengl pixel format on the desktop
|
||||
@ -43,10 +43,10 @@ index e1d6d4c97c2..bf6a9a138dd 100644
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D10Device1 *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index 9ce72ca853e..f8de8d59dbb 100644
|
||||
index f39e1ad43be..7bc4e982634 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -1596,10 +1596,22 @@ static void test_create_device(void)
|
||||
@@ -1592,10 +1592,22 @@ static void test_create_device(void)
|
||||
hr = D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, NULL, 0, D3D11_SDK_VERSION,
|
||||
&swapchain_desc, &swapchain, &device, &feature_level, &immediate_context);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "D3D11CreateDeviceAndSwapChain returned %#x.\n", hr);
|
||||
@ -74,11 +74,11 @@ index 9ce72ca853e..f8de8d59dbb 100644
|
||||
swapchain = (IDXGISwapChain *)0xdeadbeef;
|
||||
device = (ID3D11Device *)0xdeadbeef;
|
||||
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c
|
||||
index 50752f86ad6..27ae47d9fed 100644
|
||||
index fb30636d0dd..63792e1ee05 100644
|
||||
--- a/dlls/d3d9/tests/device.c
|
||||
+++ b/dlls/d3d9/tests/device.c
|
||||
@@ -11575,6 +11575,21 @@ static void test_destroyed_window(void)
|
||||
ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
@@ -11830,6 +11830,21 @@ todo_wine
|
||||
DestroyWindow(window);
|
||||
}
|
||||
|
||||
+static void test_desktop_window(void)
|
||||
@ -99,19 +99,19 @@ index 50752f86ad6..27ae47d9fed 100644
|
||||
START_TEST(device)
|
||||
{
|
||||
WNDCLASSA wc = {0};
|
||||
@@ -11694,6 +11709,7 @@ START_TEST(device)
|
||||
test_render_target_device_mismatch();
|
||||
@@ -11950,6 +11965,7 @@ START_TEST(device)
|
||||
test_format_unknown();
|
||||
test_destroyed_window();
|
||||
test_lockable_backbuffer();
|
||||
+ test_desktop_window();
|
||||
|
||||
UnregisterClassA("d3d9_test_wc", GetModuleHandleA(NULL));
|
||||
}
|
||||
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
|
||||
index f18e01f4dfc..1f4208adea4 100644
|
||||
index 5eb70a86928..c03905d221d 100644
|
||||
--- a/dlls/winex11.drv/opengl.c
|
||||
+++ b/dlls/winex11.drv/opengl.c
|
||||
@@ -1484,12 +1484,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
@@ -1480,12 +1480,15 @@ static BOOL set_pixel_format(HDC hdc, int format, BOOL allow_change)
|
||||
|
||||
TRACE("(%p,%d)\n", hdc, format);
|
||||
|
||||
@ -129,5 +129,5 @@ index f18e01f4dfc..1f4208adea4 100644
|
||||
if (!fmt)
|
||||
{
|
||||
--
|
||||
2.13.1
|
||||
2.14.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b4d76755b585f32399ae1a81c6166bda9cea355e Mon Sep 17 00:00:00 2001
|
||||
From cac3b5016a340f61ae2e7f16508fd8b30baaf88d Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 7 Mar 2015 18:09:37 +0100
|
||||
Subject: ntdll: Process APC calls before starting process.
|
||||
@ -8,10 +8,10 @@ Subject: ntdll: Process APC calls before starting process.
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index cf758505a4c..165121b689d 100644
|
||||
index 5d8b4e2e513..cdf8d586c36 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -3062,6 +3062,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3111,6 +3111,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
ULONG_PTR unknown3, ULONG_PTR unknown4 )
|
||||
{
|
||||
static const WCHAR globalflagW[] = {'G','l','o','b','a','l','F','l','a','g',0};
|
||||
@ -19,7 +19,7 @@ index cf758505a4c..165121b689d 100644
|
||||
NTSTATUS status;
|
||||
WINE_MODREF *wm;
|
||||
LPCWSTR load_path;
|
||||
@@ -3112,6 +3113,10 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3158,6 +3159,10 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
|
||||
virtual_release_address_space();
|
||||
virtual_clear_thread_stack();
|
||||
@ -27,9 +27,9 @@ index cf758505a4c..165121b689d 100644
|
||||
+ timeout.QuadPart = 0;
|
||||
+ NtDelayExecution( TRUE, &timeout );
|
||||
+
|
||||
wine_switch_to_stack( start_process, &start_params, NtCurrentTeb()->Tib.StackBase );
|
||||
if (context.ContextFlags) NtSetContextThread( GetCurrentThread(), &context );
|
||||
wine_switch_to_stack( start_process, wm->ldr.EntryPoint, NtCurrentTeb()->Tib.StackBase );
|
||||
|
||||
error:
|
||||
--
|
||||
2.11.0
|
||||
2.14.1
|
||||
|
||||
|
@ -1,22 +1,21 @@
|
||||
From 7c039b040883bf9cc22050f2dcb8b70cb9a2e5b8 Mon Sep 17 00:00:00 2001
|
||||
From d209582c297d376da27f80dc62c59b2f5440da25 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Wed, 1 Apr 2015 04:34:20 +0200
|
||||
Subject: ntdll: Load CLI/.NET images in the same way as Windows XP and above.
|
||||
|
||||
---
|
||||
dlls/ntdll/loader.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 121 insertions(+), 2 deletions(-)
|
||||
dlls/ntdll/loader.c | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 123 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index cf758505a4c..e796e7552b0 100644
|
||||
index cdf8d586c36..fa66c4c40d2 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -104,12 +104,17 @@ struct start_params
|
||||
void *kernel_start;
|
||||
LPTHREAD_START_ROUTINE entry;
|
||||
};
|
||||
+static struct start_params start_params;
|
||||
@@ -100,11 +100,16 @@ struct builtin_load_info
|
||||
static struct builtin_load_info default_load_info;
|
||||
static struct builtin_load_info *builtin_load_info = &default_load_info;
|
||||
|
||||
+static CONTEXT start_context = { 0 };
|
||||
static HANDLE main_exe_file;
|
||||
static UINT tls_module_count; /* number of modules with TLS directory */
|
||||
static IMAGE_TLS_DIRECTORY *tls_dirs; /* array of TLS directories */
|
||||
@ -29,10 +28,11 @@ index cf758505a4c..e796e7552b0 100644
|
||||
static RTL_CRITICAL_SECTION loader_section;
|
||||
static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
||||
{
|
||||
@@ -343,6 +348,78 @@ static inline ULONG_PTR allocate_stub( const char *dll, const char *name ) { ret
|
||||
@@ -363,6 +368,78 @@ static inline ULONG_PTR allocate_stub( const char *dll, const char *name ) { ret
|
||||
#endif /* __i386__ */
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
+/*************************************************************************
|
||||
+ * is_cli_only_image
|
||||
+ *
|
||||
+ * Checks if an image is a CLI/.NET image which does not contain any
|
||||
@ -104,11 +104,10 @@ index cf758505a4c..e796e7552b0 100644
|
||||
+}
|
||||
+
|
||||
+
|
||||
+/*************************************************************************
|
||||
/*************************************************************************
|
||||
* get_modref
|
||||
*
|
||||
* Looks for the referenced HMODULE in the current process
|
||||
@@ -892,6 +969,10 @@ static NTSTATUS fixup_imports( WINE_MODREF *wm, LPCWSTR load_path )
|
||||
@@ -913,6 +990,10 @@ static NTSTATUS fixup_imports( WINE_MODREF *wm, LPCWSTR load_path )
|
||||
if (!(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS)) return STATUS_SUCCESS; /* already done */
|
||||
wm->ldr.Flags &= ~LDR_DONT_RESOLVE_REFS;
|
||||
|
||||
@ -119,7 +118,7 @@ index cf758505a4c..e796e7552b0 100644
|
||||
wm->ldr.TlsIndex = alloc_tls_slot( &wm->ldr );
|
||||
|
||||
if (!(imports = RtlImageDirectoryEntryToData( wm->ldr.BaseAddress, TRUE,
|
||||
@@ -1096,8 +1177,47 @@ static NTSTATUS MODULE_InitDLL( WINE_MODREF *wm, UINT reason, LPVOID lpReserved
|
||||
@@ -1117,8 +1198,47 @@ static NTSTATUS MODULE_InitDLL( WINE_MODREF *wm, UINT reason, LPVOID lpReserved
|
||||
BOOL retv = FALSE;
|
||||
|
||||
/* Skip calls for modules loaded with special load flags */
|
||||
@ -159,7 +158,7 @@ index cf758505a4c..e796e7552b0 100644
|
||||
+ #endif
|
||||
+
|
||||
+ if (!(wm->ldr.Flags & LDR_IMAGE_IS_DLL))
|
||||
+ start_params.entry = wm->ldr.EntryPoint;
|
||||
+ start_context.ContextFlags = 0;
|
||||
+
|
||||
+ entry = wm->ldr.EntryPoint;
|
||||
+ }
|
||||
@ -168,14 +167,32 @@ index cf758505a4c..e796e7552b0 100644
|
||||
if (wm->ldr.TlsIndex != -1) call_tls_callbacks( wm->ldr.BaseAddress, reason );
|
||||
if (!entry || !(wm->ldr.Flags & LDR_IMAGE_IS_DLL)) return STATUS_SUCCESS;
|
||||
|
||||
@@ -3066,7 +3186,6 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3116,7 +3236,6 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
WINE_MODREF *wm;
|
||||
LPCWSTR load_path;
|
||||
PEB *peb = NtCurrentTeb()->Peb;
|
||||
- struct start_params start_params;
|
||||
- CONTEXT context = { 0 };
|
||||
|
||||
kernel32_start_process = kernel_start;
|
||||
if (main_exe_file) NtClose( main_exe_file ); /* at this point the main module is created */
|
||||
@@ -3147,7 +3266,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
InsertHeadList( &peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList );
|
||||
|
||||
if ((status = virtual_alloc_thread_stack( NtCurrentTeb(), 0, 0 )) != STATUS_SUCCESS) goto error;
|
||||
- if ((status = server_init_process_done( &context )) != STATUS_SUCCESS) goto error;
|
||||
+ if ((status = server_init_process_done( &start_context )) != STATUS_SUCCESS) goto error;
|
||||
|
||||
actctx_init();
|
||||
load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
|
||||
@@ -3163,7 +3282,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
timeout.QuadPart = 0;
|
||||
NtDelayExecution( TRUE, &timeout );
|
||||
|
||||
- if (context.ContextFlags) NtSetContextThread( GetCurrentThread(), &context );
|
||||
+ if (start_context.ContextFlags) NtSetContextThread( GetCurrentThread(), &start_context );
|
||||
wine_switch_to_stack( start_process, wm->ldr.EntryPoint, NtCurrentTeb()->Tib.StackBase );
|
||||
|
||||
error:
|
||||
--
|
||||
2.11.0
|
||||
2.14.1
|
||||
|
||||
|
@ -1,2 +1,3 @@
|
||||
Fixes: [38661] Implement proper handling of CLI .NET images in Wine library loader
|
||||
Depends: mscoree-CorValidateImage
|
||||
Depends: ntdll-APC_Start_Process
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e9ae5fa171bfea7b44946f6ac3d3205d53a72904 Mon Sep 17 00:00:00 2001
|
||||
From 5b8f46cbd6c338fe8fc080e5fea870627f266de1 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: ntdll: Implement HashLinks field in LDR module data.
|
||||
@ -10,7 +10,7 @@ Subject: ntdll: Implement HashLinks field in LDR module data.
|
||||
3 files changed, 140 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index a74647b3d4..dc7b92deae 100644
|
||||
index 1f6f3176760..f51ac62b976 100644
|
||||
--- a/dlls/kernel32/tests/loader.c
|
||||
+++ b/dlls/kernel32/tests/loader.c
|
||||
@@ -28,6 +28,7 @@
|
||||
@ -21,7 +21,7 @@ index a74647b3d4..dc7b92deae 100644
|
||||
#include "wine/test.h"
|
||||
#include "delayloadhandler.h"
|
||||
|
||||
@@ -3043,6 +3044,79 @@ static void test_InMemoryOrderModuleList(void)
|
||||
@@ -3036,6 +3037,79 @@ static void test_InMemoryOrderModuleList(void)
|
||||
ok(entry2 == mark2, "expected entry2 == mark2, got %p and %p\n", entry2, mark2);
|
||||
}
|
||||
|
||||
@ -101,17 +101,17 @@ index a74647b3d4..dc7b92deae 100644
|
||||
START_TEST(loader)
|
||||
{
|
||||
int argc;
|
||||
@@ -3104,4 +3178,5 @@ START_TEST(loader)
|
||||
@@ -3097,4 +3171,5 @@ START_TEST(loader)
|
||||
test_import_resolution();
|
||||
test_ExitProcess();
|
||||
test_InMemoryOrderModuleList();
|
||||
+ test_HashLinks();
|
||||
}
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 97cde88354..d9b6b7d1c7 100644
|
||||
index 4ff69b674a3..691eb60e865 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -82,6 +82,9 @@ static const char * const reason_names[] =
|
||||
@@ -79,6 +79,9 @@ static const char * const reason_names[] =
|
||||
|
||||
static const WCHAR dllW[] = {'.','d','l','l',0};
|
||||
|
||||
@ -121,7 +121,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
/* internal representation of 32bit modules. per process. */
|
||||
typedef struct _wine_modref
|
||||
{
|
||||
@@ -159,7 +162,6 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
|
||||
@@ -148,7 +151,6 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
|
||||
while (len--) *dst++ = (unsigned char)*src++;
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
/*************************************************************************
|
||||
* call_dll_entry_point
|
||||
*
|
||||
@@ -424,6 +426,51 @@ static BOOL load_mscoree( void )
|
||||
@@ -439,6 +441,51 @@ static BOOL load_mscoree( void )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -181,7 +181,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
|
||||
/*************************************************************************
|
||||
* get_modref
|
||||
@@ -1054,7 +1101,6 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename, LPCWSTR fak
|
||||
@@ -1056,7 +1103,6 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
wm->ldr.TlsIndex = -1;
|
||||
wm->ldr.LoadCount = 1;
|
||||
wm->ldr.SectionHandle = NULL;
|
||||
@ -189,7 +189,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
wm->ldr.TimeDateStamp = 0;
|
||||
wm->ldr.ActivationContext = 0;
|
||||
|
||||
@@ -1075,6 +1121,8 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename, LPCWSTR fak
|
||||
@@ -1077,6 +1123,8 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
&wm->ldr.InLoadOrderModuleList);
|
||||
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
|
||||
&wm->ldr.InMemoryOrderModuleList);
|
||||
@ -198,7 +198,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
|
||||
/* wait until init is called for inserting into this list */
|
||||
wm->ldr.InInitializationOrderModuleList.Flink = NULL;
|
||||
@@ -1877,6 +1925,7 @@ static void load_builtin_callback( void *module, const char *filename )
|
||||
@@ -1784,6 +1832,7 @@ static void load_builtin_callback( void *module, const char *filename )
|
||||
/* the module has only be inserted in the load & memory order lists */
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderModuleList);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderModuleList);
|
||||
@ -206,7 +206,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
/* FIXME: free the modref */
|
||||
builtin_load_info->status = STATUS_DLL_NOT_FOUND;
|
||||
return;
|
||||
@@ -2091,6 +2140,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, LPCWSTR fakemo
|
||||
@@ -1999,6 +2048,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file,
|
||||
/* the module has only be inserted in the load & memory order lists */
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderModuleList);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderModuleList);
|
||||
@ -214,7 +214,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
|
||||
/* FIXME: there are several more dangling references
|
||||
* left. Including dlls loaded by this dll before the
|
||||
@@ -3217,6 +3267,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
@@ -2977,6 +3027,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
{
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderModuleList);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderModuleList);
|
||||
@ -222,7 +222,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
if (wm->ldr.InInitializationOrderModuleList.Flink)
|
||||
RemoveEntryList(&wm->ldr.InInitializationOrderModuleList);
|
||||
|
||||
@@ -3507,6 +3558,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3264,6 +3315,9 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
RemoveEntryList( &wm->ldr.InMemoryOrderModuleList );
|
||||
InsertHeadList( &peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList );
|
||||
|
||||
@ -230,9 +230,9 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
+ recompute_hash_map();
|
||||
+
|
||||
if ((status = virtual_alloc_thread_stack( NtCurrentTeb(), 0, 0 )) != STATUS_SUCCESS) goto error;
|
||||
if ((status = server_init_process_done()) != STATUS_SUCCESS) goto error;
|
||||
if ((status = server_init_process_done( &start_context )) != STATUS_SUCCESS) goto error;
|
||||
|
||||
@@ -3710,6 +3764,7 @@ void __wine_process_init(void)
|
||||
@@ -3460,6 +3514,7 @@ void __wine_process_init(void)
|
||||
NTSTATUS status;
|
||||
ANSI_STRING func_name;
|
||||
void (* DECLSPEC_NORETURN CDECL init_func)(void);
|
||||
@ -240,7 +240,7 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
|
||||
main_exe_file = thread_init();
|
||||
|
||||
@@ -3719,6 +3774,10 @@ void __wine_process_init(void)
|
||||
@@ -3469,6 +3524,10 @@ void __wine_process_init(void)
|
||||
|
||||
load_global_options();
|
||||
|
||||
@ -252,10 +252,10 @@ index 97cde88354..d9b6b7d1c7 100644
|
||||
wine_dll_set_callback( load_builtin_callback );
|
||||
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 2685137d6a..d6f47ad3ba 100644
|
||||
index 4e7d2e966c2..c70d1bd837e 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -2171,8 +2171,7 @@ typedef struct _LDR_MODULE
|
||||
@@ -2099,8 +2099,7 @@ typedef struct _LDR_MODULE
|
||||
ULONG Flags;
|
||||
SHORT LoadCount;
|
||||
SHORT TlsIndex;
|
||||
@ -265,7 +265,7 @@ index 2685137d6a..d6f47ad3ba 100644
|
||||
ULONG TimeDateStamp;
|
||||
HANDLE ActivationContext;
|
||||
PVOID PatchInformation;
|
||||
@@ -2182,6 +2181,9 @@ typedef struct _LDR_MODULE
|
||||
@@ -2110,6 +2109,9 @@ typedef struct _LDR_MODULE
|
||||
PVOID ContextInformation;
|
||||
ULONG_PTR OriginalBase;
|
||||
LARGE_INTEGER LoadTime;
|
||||
@ -276,5 +276,5 @@ index 2685137d6a..d6f47ad3ba 100644
|
||||
|
||||
/* those defines are (some of the) regular LDR_MODULE.Flags values */
|
||||
--
|
||||
2.11.0
|
||||
2.14.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fd6f4d21e1f1aa87ae2c82edc38c6286e8af7a3f Mon Sep 17 00:00:00 2001
|
||||
From 6164061c7897abc29b28b0bb3a98b0cc525be934 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 5 May 2017 05:40:50 +0200
|
||||
Subject: ntdll: Create thread to update user_shared_data time values when
|
||||
@ -35,11 +35,11 @@ index 2e0e79f8e8d..d53488c7652 100644
|
||||
return FALSE;
|
||||
}
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 71bba83b9bc..a2ea5e0dcd3 100644
|
||||
index b405bb4e158..187e5a9b57a 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -3217,6 +3217,37 @@ static void start_process( void *arg )
|
||||
call_thread_entry_point( start_params->kernel_start, start_params->entry );
|
||||
@@ -3211,6 +3211,37 @@ static void start_process( void *arg )
|
||||
call_thread_entry_point( kernel32_start_process, arg );
|
||||
}
|
||||
|
||||
+
|
||||
@ -76,7 +76,7 @@ index 71bba83b9bc..a2ea5e0dcd3 100644
|
||||
/******************************************************************
|
||||
* LdrInitializeThunk (NTDLL.@)
|
||||
*
|
||||
@@ -3248,6 +3279,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3243,6 +3274,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
peb->ProcessParameters->WindowTitle = wm->ldr.FullDllName;
|
||||
version_init( wm->ldr.FullDllName.Buffer );
|
||||
hidden_exports_init( wm->ldr.FullDllName.Buffer );
|
||||
@ -85,10 +85,10 @@ index 71bba83b9bc..a2ea5e0dcd3 100644
|
||||
|
||||
LdrQueryImageFileExecutionOptions( &peb->ProcessParameters->ImagePathName, globalflagW,
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index cdc12b07db7..c627162da4d 100644
|
||||
index dfa808bfb29..463d88c67b9 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -176,6 +176,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN;
|
||||
@@ -177,6 +177,9 @@ extern void VIRTUAL_SetForceExec( BOOL enable ) DECLSPEC_HIDDEN;
|
||||
extern void virtual_release_address_space(void) DECLSPEC_HIDDEN;
|
||||
extern void virtual_set_large_address_space(void) DECLSPEC_HIDDEN;
|
||||
extern struct _KUSER_SHARED_DATA *user_shared_data DECLSPEC_HIDDEN;
|
||||
@ -99,7 +99,7 @@ index cdc12b07db7..c627162da4d 100644
|
||||
/* completion */
|
||||
extern NTSTATUS NTDLL_AddCompletion( HANDLE hFile, ULONG_PTR CompletionValue,
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index 0cebc2a8daf..9064e1559a9 100644
|
||||
index 0e73430907f..97b7383e2b8 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -43,6 +43,7 @@
|
||||
@ -120,8 +120,8 @@ index 0cebc2a8daf..9064e1559a9 100644
|
||||
+struct _KUSER_SHARED_DATA *user_shared_data = &user_shared_data_internal;
|
||||
|
||||
PUNHANDLED_EXCEPTION_FILTER unhandled_exception_filter = NULL;
|
||||
|
||||
@@ -353,18 +356,71 @@ static ULONG_PTR get_image_addr(void)
|
||||
LPTHREAD_START_ROUTINE kernel32_start_process = NULL;
|
||||
@@ -355,18 +358,71 @@ static ULONG_PTR get_image_addr(void)
|
||||
*/
|
||||
BYTE* CDECL __wine_user_shared_data(void)
|
||||
{
|
||||
@ -198,7 +198,7 @@ index 0cebc2a8daf..9064e1559a9 100644
|
||||
/***********************************************************************
|
||||
* thread_init
|
||||
*
|
||||
@@ -395,7 +451,7 @@ HANDLE thread_init(void)
|
||||
@@ -397,7 +453,7 @@ HANDLE thread_init(void)
|
||||
MESSAGE( "wine: failed to map the shared user data: %08x\n", status );
|
||||
exit(1);
|
||||
}
|
||||
@ -208,10 +208,10 @@ index 0cebc2a8daf..9064e1559a9 100644
|
||||
/* allocate and initialize the PEB */
|
||||
|
||||
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
|
||||
index 9f1b6da0c5e..25946c22c97 100644
|
||||
index a452c58a44d..da7206a58b1 100644
|
||||
--- a/dlls/ntdll/virtual.c
|
||||
+++ b/dlls/ntdll/virtual.c
|
||||
@@ -1691,6 +1691,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
@@ -1758,6 +1758,7 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
struct file_view *view;
|
||||
NTSTATUS ret = STATUS_ACCESS_VIOLATION;
|
||||
sigset_t sigset;
|
||||
@ -219,7 +219,7 @@ index 9f1b6da0c5e..25946c22c97 100644
|
||||
|
||||
server_enter_uninterrupted_section( &csVirtual, &sigset );
|
||||
if ((view = VIRTUAL_FindView( addr, 0 )))
|
||||
@@ -1707,6 +1708,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
@@ -1774,6 +1775,18 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
/* ignore fault if page is writable now */
|
||||
if (VIRTUAL_GetUnixProt( get_page_vprot( page )) & PROT_WRITE) ret = STATUS_SUCCESS;
|
||||
}
|
||||
@ -238,7 +238,7 @@ index 9f1b6da0c5e..25946c22c97 100644
|
||||
if (!on_signal_stack && (vprot & VPROT_GUARD))
|
||||
{
|
||||
set_page_vprot_bits( page, page_size, 0, VPROT_GUARD );
|
||||
@@ -1715,6 +1728,10 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
@@ -1782,6 +1795,10 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack )
|
||||
}
|
||||
}
|
||||
server_leave_uninterrupted_section( &csVirtual, &sigset );
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 7fd25e2e5a4397a4a4134ec50bb982b365f13534 Mon Sep 17 00:00:00 2001
|
||||
From 44f9d4109dfcd0a9e49b3396bd8f8a1f1c2ca1a0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Oct 2014 02:53:22 +0200
|
||||
Subject: ntdll: Setup a temporary signal handler during process startup to
|
||||
@ -15,22 +15,22 @@ Subject: ntdll: Setup a temporary signal handler during process startup to
|
||||
7 files changed, 79 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index f78e4fe8f3..74e3c0a002 100644
|
||||
index fafad135f29..ec3b1746f84 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -68,6 +68,7 @@ extern NTSTATUS signal_alloc_thread( TEB **teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_free_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_process(void) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry ) DECLSPEC_HIDDEN;
|
||||
+extern void signal_init_early(void) DECLSPEC_HIDDEN;
|
||||
extern void version_init( const WCHAR *appname ) DECLSPEC_HIDDEN;
|
||||
extern void debug_init(void) DECLSPEC_HIDDEN;
|
||||
extern HANDLE thread_init(void) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
|
||||
index cb5f67db75..b9ec7fb874 100644
|
||||
index e5e314049e8..61c9ead5682 100644
|
||||
--- a/dlls/ntdll/signal_arm.c
|
||||
+++ b/dlls/ntdll/signal_arm.c
|
||||
@@ -974,6 +974,12 @@ void signal_init_process(void)
|
||||
@@ -1019,6 +1019,12 @@ void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -44,10 +44,10 @@ index cb5f67db75..b9ec7fb874 100644
|
||||
/**********************************************************************
|
||||
* __wine_enter_vm86 (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
|
||||
index 14c5260c14..7967310355 100644
|
||||
index 5b3e8879b8f..6e4a4f12343 100644
|
||||
--- a/dlls/ntdll/signal_arm64.c
|
||||
+++ b/dlls/ntdll/signal_arm64.c
|
||||
@@ -846,6 +846,12 @@ void signal_init_process(void)
|
||||
@@ -890,6 +890,12 @@ void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -61,13 +61,14 @@ index 14c5260c14..7967310355 100644
|
||||
/**********************************************************************
|
||||
* __wine_enter_vm86 (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index bee6ab8694..ee8855a24c 100644
|
||||
index c8b85936fbf..3442851e65a 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -2056,6 +2056,31 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
|
||||
@@ -2181,6 +2181,31 @@ static void usr2_handler( int signal, siginfo_t *siginfo, void *sigcontext )
|
||||
#endif /* __HAVE_VM86 */
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
+/**********************************************************************
|
||||
+ * segv_handler_early
|
||||
+ *
|
||||
+ * Handler for SIGSEGV and related errors. Used only during the initialization
|
||||
@ -92,11 +93,10 @@ index bee6ab8694..ee8855a24c 100644
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/**********************************************************************
|
||||
/**********************************************************************
|
||||
* segv_handler
|
||||
*
|
||||
* Handler for SIGSEGV and related errors.
|
||||
@@ -2493,6 +2518,34 @@ void signal_init_process(void)
|
||||
@@ -2621,6 +2646,34 @@ void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -132,10 +132,10 @@ index bee6ab8694..ee8855a24c 100644
|
||||
#ifdef __HAVE_VM86
|
||||
/**********************************************************************
|
||||
diff --git a/dlls/ntdll/signal_powerpc.c b/dlls/ntdll/signal_powerpc.c
|
||||
index 507490a526..6adf0c343b 100644
|
||||
index e5a009c2aa2..dcbc1c4fa0b 100644
|
||||
--- a/dlls/ntdll/signal_powerpc.c
|
||||
+++ b/dlls/ntdll/signal_powerpc.c
|
||||
@@ -1048,6 +1048,12 @@ void signal_init_process(void)
|
||||
@@ -1092,6 +1092,12 @@ void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -149,10 +149,10 @@ index 507490a526..6adf0c343b 100644
|
||||
/**********************************************************************
|
||||
* __wine_enter_vm86 (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 61bb2ddce6..1870c061c3 100644
|
||||
index 691ee1ffdbf..1148f0224aa 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -3005,6 +3005,12 @@ void signal_init_process(void)
|
||||
@@ -3158,6 +3158,12 @@ void signal_init_process( CONTEXT *context, LPTHREAD_START_ROUTINE entry )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -166,10 +166,10 @@ index 61bb2ddce6..1870c061c3 100644
|
||||
/**********************************************************************
|
||||
* RtlAddFunctionTable (NTDLL.@)
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index 6b5e9f5c9c..3a3d6c0efd 100644
|
||||
index 85ceb2bbeac..cc0159dd87b 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -270,6 +270,7 @@ HANDLE thread_init(void)
|
||||
@@ -280,6 +280,7 @@ HANDLE thread_init(void)
|
||||
static struct debug_info debug_info; /* debug info for initial thread */
|
||||
|
||||
virtual_init();
|
||||
@ -178,5 +178,5 @@ index 6b5e9f5c9c..3a3d6c0efd 100644
|
||||
/* reserve space for shared user data */
|
||||
|
||||
--
|
||||
2.12.2
|
||||
2.14.1
|
||||
|
||||
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "302153117e20b62c9170aed62aa33e83cacfaf59"
|
||||
echo "fdac39f697e049ead215b164bfe6953269ffa7be"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -2686,7 +2686,11 @@ if test "$enable_ntdll_CLI_Images" -eq 1; then
|
||||
if test "$enable_mscoree_CorValidateImage" -gt 1; then
|
||||
abort "Patchset mscoree-CorValidateImage disabled, but ntdll-CLI_Images depends on that."
|
||||
fi
|
||||
if test "$enable_ntdll_APC_Start_Process" -gt 1; then
|
||||
abort "Patchset ntdll-APC_Start_Process disabled, but ntdll-CLI_Images depends on that."
|
||||
fi
|
||||
enable_mscoree_CorValidateImage=1
|
||||
enable_ntdll_APC_Start_Process=1
|
||||
fi
|
||||
|
||||
if test "$enable_ntdll_Builtin_Prot" -eq 1; then
|
||||
@ -6154,7 +6158,7 @@ fi
|
||||
# Patchset ntdll-CLI_Images
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * mscoree-CorValidateImage
|
||||
# | * mscoree-CorValidateImage, ntdll-APC_Start_Process
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38661] Implement proper handling of CLI .NET images in Wine library loader
|
||||
@ -6365,7 +6369,7 @@ fi
|
||||
# Patchset ntdll-HashLinks
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * mscoree-CorValidateImage, ntdll-CLI_Images, ntdll-LDR_MODULE
|
||||
# | * mscoree-CorValidateImage, ntdll-APC_Start_Process, ntdll-CLI_Images, ntdll-LDR_MODULE
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/tests/loader.c, dlls/ntdll/loader.c, include/winternl.h
|
||||
@ -6500,8 +6504,8 @@ fi
|
||||
# Patchset ntdll-LdrRegisterDllNotification
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * mscoree-CorValidateImage, ntdll-CLI_Images, ntdll-LDR_MODULE, ntdll-HashLinks, ntdll-Attach_Process_DLLs, ntdll-
|
||||
# | ThreadTime, ntdll-Hide_Wine_Exports, ntdll-RtlQueryPackageIdentity
|
||||
# | * mscoree-CorValidateImage, ntdll-APC_Start_Process, ntdll-CLI_Images, ntdll-LDR_MODULE, ntdll-HashLinks, ntdll-
|
||||
# | Attach_Process_DLLs, ntdll-ThreadTime, ntdll-Hide_Wine_Exports, ntdll-RtlQueryPackageIdentity
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/ntdll/loader.c, dlls/ntdll/ntdll.spec, dlls/ntdll/tests/rtl.c, include/winternl.h
|
||||
|
@ -1,4 +1,4 @@
|
||||
From bf996fd4928c50ce68bd266cff147cc3d52a178c Mon Sep 17 00:00:00 2001
|
||||
From e6812e345ddbfdf41222de31025661cc7c66c747 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 7 Sep 2017 00:38:09 +0200
|
||||
Subject: tools/winebuild: Add syscall thunks for 64 bit.
|
||||
@ -13,10 +13,10 @@ Subject: tools/winebuild: Add syscall thunks for 64 bit.
|
||||
6 files changed, 224 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index 5ac99e0c1ec..20e9868ac31 100644
|
||||
index 57b2b08aeca..1a47abe5a4f 100644
|
||||
--- a/dlls/kernel32/tests/loader.c
|
||||
+++ b/dlls/kernel32/tests/loader.c
|
||||
@@ -898,7 +898,7 @@ static void test_Loader(void)
|
||||
@@ -858,7 +858,7 @@ static void test_Loader(void)
|
||||
|
||||
static void test_FakeDLL(void)
|
||||
{
|
||||
@ -25,7 +25,7 @@ index 5ac99e0c1ec..20e9868ac31 100644
|
||||
NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL;
|
||||
IMAGE_EXPORT_DIRECTORY *dir;
|
||||
HMODULE module = GetModuleHandleA("ntdll.dll");
|
||||
@@ -940,8 +940,13 @@ static void test_FakeDLL(void)
|
||||
@@ -900,8 +900,13 @@ static void test_FakeDLL(void)
|
||||
|
||||
dll_func = (BYTE *)GetProcAddress(module, func_name);
|
||||
ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name);
|
||||
@ -40,7 +40,7 @@ index 5ac99e0c1ec..20e9868ac31 100644
|
||||
todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name);
|
||||
continue;
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index 07dbfc71210..1c5ab158a3a 100644
|
||||
index a74825c3c36..83bcd4d46f7 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -326,6 +326,8 @@ static inline struct amd64_thread_data *amd64_thread_data(void)
|
||||
@ -52,7 +52,7 @@ index 07dbfc71210..1c5ab158a3a 100644
|
||||
/***********************************************************************
|
||||
* Dynamic unwind table
|
||||
*/
|
||||
@@ -2971,6 +2973,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
@@ -2973,6 +2975,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
{
|
||||
(*teb)->Tib.Self = &(*teb)->Tib;
|
||||
(*teb)->Tib.ExceptionList = (void *)~0UL;
|
||||
@ -61,7 +61,7 @@ index 07dbfc71210..1c5ab158a3a 100644
|
||||
return status;
|
||||
}
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index fb31a351d19..d4bbae1896e 100644
|
||||
index 86e5047facb..8b9df0cc7c0 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -55,6 +55,8 @@ static struct _KUSER_SHARED_DATA user_shared_data_internal;
|
||||
@ -71,8 +71,8 @@ index fb31a351d19..d4bbae1896e 100644
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
+
|
||||
PUNHANDLED_EXCEPTION_FILTER unhandled_exception_filter = NULL;
|
||||
LPTHREAD_START_ROUTINE kernel32_start_process = NULL;
|
||||
|
||||
/* info passed to a starting thread */
|
||||
@@ -84,7 +86,6 @@ static RTL_CRITICAL_SECTION_DEBUG critsect_debug =
|
||||
};
|
||||
static RTL_CRITICAL_SECTION peb_lock = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||
@ -81,7 +81,7 @@ index fb31a351d19..d4bbae1896e 100644
|
||||
BOOL read_process_time(int unix_pid, int unix_tid, unsigned long clk_tck,
|
||||
LARGE_INTEGER *kernel, LARGE_INTEGER *user)
|
||||
{
|
||||
@@ -491,6 +492,10 @@ HANDLE thread_init(void)
|
||||
@@ -490,6 +491,10 @@ HANDLE thread_init(void)
|
||||
InitializeListHead( &ldr.InInitializationOrderModuleList );
|
||||
*(ULONG_PTR *)peb->Reserved = get_image_addr();
|
||||
|
||||
@ -93,10 +93,10 @@ index fb31a351d19..d4bbae1896e 100644
|
||||
* Starting with Vista, the first user to log on has session id 1.
|
||||
* Session id 0 is for processes that don't interact with the user (like services).
|
||||
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
|
||||
index 5f37dc978ba..ab1f9c548f1 100644
|
||||
index 0a64ea4a73b..e2ae56df427 100644
|
||||
--- a/libs/wine/loader.c
|
||||
+++ b/libs/wine/loader.c
|
||||
@@ -450,7 +450,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
|
||||
@@ -455,7 +455,11 @@ static void *map_dll( const IMAGE_NT_HEADERS *nt_descr )
|
||||
sec->SizeOfRawData = data_start - code_start;
|
||||
sec->Misc.VirtualSize = sec->SizeOfRawData;
|
||||
sec->VirtualAddress = code_start;
|
||||
|
Loading…
x
Reference in New Issue
Block a user