diff --git a/patches/advapi32-Token_Integrity_Level/0006-ntdll-Add-function-to-create-new-tokens-for-elevatio.patch b/patches/advapi32-Token_Integrity_Level/0006-ntdll-Add-function-to-create-new-tokens-for-elevatio.patch index 08d0b495..be3a6b2f 100644 --- a/patches/advapi32-Token_Integrity_Level/0006-ntdll-Add-function-to-create-new-tokens-for-elevatio.patch +++ b/patches/advapi32-Token_Integrity_Level/0006-ntdll-Add-function-to-create-new-tokens-for-elevatio.patch @@ -1,4 +1,4 @@ -From 90474eb9f6583f2e8fe0314cfa0b0dc04797833b Mon Sep 17 00:00:00 2001 +From 2366247c3c27b1b815420c54ce4f94458b580686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 5 Aug 2017 01:45:29 +0200 Subject: [PATCH] ntdll: Add function to create new tokens for elevation @@ -7,17 +7,17 @@ Subject: [PATCH] ntdll: Add function to create new tokens for elevation --- dlls/ntdll/ntdll.spec | 3 ++ dlls/ntdll/ntdll_misc.h | 3 ++ - dlls/ntdll/process.c | 18 +++++++++ + dlls/ntdll/process.c | 26 +++++++++++++ server/protocol.def | 8 ++++ server/security.h | 1 + server/token.c | 84 +++++++++++++++++++++++++++++++++++++++++ - 6 files changed, 117 insertions(+) + 6 files changed, 125 insertions(+) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 1ebe07fc08c..7a19674b2f3 100644 +index 0d19e12768f..e313d5807b3 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec -@@ -1586,6 +1586,9 @@ +@@ -1594,6 +1594,9 @@ # Virtual memory @ cdecl __wine_locked_recvmsg(long ptr long) @@ -28,10 +28,10 @@ index 1ebe07fc08c..7a19674b2f3 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 27e7141bc65..4baf8a3967b 100644 +index 2de9553f5c4..84801ab2f25 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h -@@ -107,6 +107,9 @@ extern int __wine_main_argc; +@@ -89,6 +89,9 @@ extern int __wine_main_argc; extern char **__wine_main_argv; extern WCHAR **__wine_main_wargv; @@ -42,10 +42,10 @@ index 27e7141bc65..4baf8a3967b 100644 extern const char *build_dir DECLSPEC_HIDDEN; extern const char *data_dir DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c -index 6c5f722b2a6..df81e061e7b 100644 +index a14b24219fc..3d4887d89fc 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c -@@ -119,6 +119,24 @@ HANDLE CDECL __wine_make_process_system(void) +@@ -108,6 +108,32 @@ HANDLE CDECL __wine_make_process_system(void) return ret; } @@ -67,11 +67,19 @@ index 6c5f722b2a6..df81e061e7b 100644 + return ret; +} + - static UINT process_error_mode; - - #define UNIMPLEMENTED_INFO_CLASS(c) \ ++static UINT process_error_mode; ++ ++#define UNIMPLEMENTED_INFO_CLASS(c) \ ++ case c: \ ++ FIXME("(process=%p) Unimplemented information class: " #c "\n", ProcessHandle); \ ++ ret = STATUS_INVALID_INFO_CLASS; \ ++ break ++ + ULONG_PTR get_system_affinity_mask(void) + { + ULONG num_cpus = NtCurrentTeb()->Peb->NumberOfProcessors; diff --git a/server/protocol.def b/server/protocol.def -index c53ceb50d50..947a3c971f5 100644 +index 6e0f309450a..7315f8ac4ea 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -3755,6 +3755,14 @@ struct handle_info @@ -215,5 +223,5 @@ index c4f1cd943c2..970ed1838da 100644 + } +} -- -2.26.2 +2.27.0 diff --git a/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch b/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch index 291992df..9021232b 100644 --- a/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch +++ b/patches/advapi32-Token_Integrity_Level/0010-server-Implement-support-for-creating-processes-usin.patch @@ -1,4 +1,4 @@ -From 35487aacbfe53d2584e83d4f59e119577901d4ea Mon Sep 17 00:00:00 2001 +From 9c61f6acfa2c43e43f07fae1a5cd447573b9529b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 6 Aug 2017 02:08:05 +0200 Subject: [PATCH] server: Implement support for creating processes using a @@ -6,7 +6,7 @@ Subject: [PATCH] server: Implement support for creating processes using a --- dlls/kernelbase/process.c | 24 +++++++++++++----------- - dlls/ntdll/process.c | 1 + + dlls/ntdll/unix/process.c | 1 + server/process.c | 39 +++++++++++++++++++++++++++++++++++---- server/process.h | 2 +- server/protocol.def | 1 + @@ -117,11 +117,11 @@ index a3b168543fc..b5c8b47239d 100644 } break; } -diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c -index f7f1b7c68fd..66961530de1 100644 ---- a/dlls/ntdll/process.c -+++ b/dlls/ntdll/process.c -@@ -1712,6 +1712,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_ +diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c +index cca6c2747bf..379a0036b63 100644 +--- a/dlls/ntdll/unix/process.c ++++ b/dlls/ntdll/unix/process.c +@@ -827,6 +827,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_ req->access = process_access; req->cpu = pe_info.cpu; req->info_size = startup_info_size; @@ -306,5 +306,5 @@ index 1c1d49989b3..2f466aa1b25 100644 { GENERIC_MAPPING mapping; -- -2.26.2 +2.27.0 diff --git a/patches/ntdll-NtDevicePath/0001-ntdll-Implement-opening-files-through-nt-device-path.patch b/patches/ntdll-NtDevicePath/0001-ntdll-Implement-opening-files-through-nt-device-path.patch index 042fb77a..e39ce2ac 100644 --- a/patches/ntdll-NtDevicePath/0001-ntdll-Implement-opening-files-through-nt-device-path.patch +++ b/patches/ntdll-NtDevicePath/0001-ntdll-Implement-opening-files-through-nt-device-path.patch @@ -1,4 +1,4 @@ -From c8bd4fe87f7a49a3da2c53ead6df94a9172e7bbb Mon Sep 17 00:00:00 2001 +From 351c405a950985a6d5a2262ce88b46ecf83b03ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 26 May 2017 05:17:17 +0200 Subject: [PATCH] ntdll: Implement opening files through nt device paths. @@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Implement opening files through nt device paths. 2 files changed, 147 insertions(+), 10 deletions(-) diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 184b7cdad59..87b5945a4e2 100644 +index e7918140323..7247f792941 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -135,18 +135,22 @@ static void WINAPI apc( void *arg, IO_STATUS_BLOCK *iosb, ULONG reserved ) @@ -63,10 +63,10 @@ index 184b7cdad59..87b5945a4e2 100644 static void open_file_test(void) diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c -index 31a6c761c7c..83e4810f00b 100644 +index 22f34a1f008..72fea5b8aab 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c -@@ -2818,16 +2818,10 @@ NTSTATUS CDECL nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, ANSI_ST +@@ -3360,16 +3360,10 @@ static NTSTATUS nt_to_unix_file_name_attr( const OBJECT_ATTRIBUTES *attr, ANSI_S /****************************************************************************** @@ -86,7 +86,7 @@ index 31a6c761c7c..83e4810f00b 100644 { static const WCHAR unixW[] = {'u','n','i','x'}; static const WCHAR pipeW[] = {'p','i','p','e'}; -@@ -2940,6 +2934,126 @@ NTSTATUS CDECL nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *u +@@ -3482,6 +3476,126 @@ NTSTATUS CDECL nt_to_unix_file_name( const UNICODE_STRING *nameW, ANSI_STRING *u return status; } @@ -211,8 +211,8 @@ index 31a6c761c7c..83e4810f00b 100644 + return status; +} - /*********************************************************************** - * unmount_device + /****************************************************************** + * unix_to_nt_file_name -- 2.27.0 diff --git a/patches/ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch b/patches/ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch index 1a617f26..529b3963 100644 --- a/patches/ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch +++ b/patches/ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch @@ -1,49 +1,50 @@ -From c7ed817b9c0b4edf7969ec05f1f3e081a04155d9 Mon Sep 17 00:00:00 2001 +From 8c7d326435794a72c70e05acdff945edf506ec3c Mon Sep 17 00:00:00 2001 From: Qian Hong Date: Wed, 21 Oct 2015 06:23:22 +0800 -Subject: ntdll: Add fake data implementation for ProcessQuotaLimits class. +Subject: [PATCH] ntdll: Add fake data implementation for ProcessQuotaLimits + class. --- - dlls/ntdll/process.c | 31 ++++++++++++++++++++++++++++++- - 1 file changed, 30 insertions(+), 1 deletion(-) + dlls/ntdll/unix/process.c | 32 +++++++++++++++++++++++++++++++- + 1 file changed, 31 insertions(+), 1 deletion(-) -diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c -index 37c08f1..088834e 100644 ---- a/dlls/ntdll/process.c -+++ b/dlls/ntdll/process.c -@@ -134,7 +134,6 @@ NTSTATUS WINAPI SYSCALL(NtQueryInformationProcess)( +diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c +index 93d7e7b0140..ae3ab9a8058 100644 +--- a/dlls/ntdll/unix/process.c ++++ b/dlls/ntdll/unix/process.c +@@ -1050,7 +1050,6 @@ NTSTATUS WINAPI NtQueryInformationProcess( HANDLE handle, PROCESSINFOCLASS class - switch (ProcessInformationClass) + switch (class) { - UNIMPLEMENTED_INFO_CLASS(ProcessQuotaLimits); UNIMPLEMENTED_INFO_CLASS(ProcessBasePriority); UNIMPLEMENTED_INFO_CLASS(ProcessRaisePriority); UNIMPLEMENTED_INFO_CLASS(ProcessExceptionPort); -@@ -199,6 +198,36 @@ NTSTATUS WINAPI SYSCALL(NtQueryInformationProcess)( - } +@@ -1109,6 +1108,37 @@ NTSTATUS WINAPI NtQueryInformationProcess( HANDLE handle, PROCESSINFOCLASS class } break; + + case ProcessQuotaLimits: + { + QUOTA_LIMITS pqli; + -+ if (ProcessInformationLength >= sizeof(QUOTA_LIMITS)) ++ if (size >= sizeof(QUOTA_LIMITS)) + { -+ if (!ProcessInformation) ++ if (!info) + ret = STATUS_ACCESS_VIOLATION; -+ else if (!ProcessHandle) ++ else if (!handle) + ret = STATUS_INVALID_HANDLE; + else + { + /* FIXME : real data */ + memset(&pqli, 0, sizeof(QUOTA_LIMITS)); + -+ memcpy(ProcessInformation, &pqli, sizeof(QUOTA_LIMITS)); ++ memcpy(info, &pqli, sizeof(QUOTA_LIMITS)); + + len = sizeof(QUOTA_LIMITS); + } + -+ if (ProcessInformationLength > sizeof(QUOTA_LIMITS)) ++ if (size > sizeof(QUOTA_LIMITS)) + ret = STATUS_INFO_LENGTH_MISMATCH; + } + else @@ -53,9 +54,10 @@ index 37c08f1..088834e 100644 + } + } + break; ++ case ProcessIoCounters: { IO_COUNTERS pii; -- -2.6.1 +2.27.0 diff --git a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch index b2ffa77b..0a88ded4 100644 --- a/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch +++ b/patches/ntdll-Syscall_Emulation/0001-ntdll-Support-x86_64-syscall-emulation.patch @@ -1,4 +1,4 @@ -From d389571ffefb1cabd3b23d1c966dbc237d042e87 Mon Sep 17 00:00:00 2001 +From a88ac4ac286c6c345efc3722d6fd4cc5b6ad29ca Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 30 Dec 2019 13:27:53 +0300 Subject: [PATCH] ntdll: Support x86_64 syscall emulation. @@ -19,10 +19,10 @@ is used for trapping syscalls. 7 files changed, 135 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac -index 8a76b74e83d..d67c0be3617 100644 +index d57b0713856..7bd3da1e175 100644 --- a/configure.ac +++ b/configure.ac -@@ -464,6 +464,7 @@ AC_CHECK_HEADERS(\ +@@ -474,6 +474,7 @@ AC_CHECK_HEADERS(\ linux/joystick.h \ linux/major.h \ linux/param.h \ @@ -31,10 +31,10 @@ index 8a76b74e83d..d67c0be3617 100644 linux/types.h \ linux/ucdrom.h \ diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 8295b7559e7..052035750cf 100644 +index 18db4fd4780..e4f0293ab5a 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c -@@ -179,6 +179,12 @@ void __wine_syscall_dispatcher( void ) +@@ -229,6 +229,12 @@ void __wine_syscall_dispatcher( void ) } #endif @@ -47,7 +47,7 @@ index 8295b7559e7..052035750cf 100644 void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord ) { UNICODE_STRING name; -@@ -222,7 +228,7 @@ void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord ) +@@ -272,7 +278,7 @@ void *WINAPI __wine_fakedll_dispatcher( const char *module, ULONG ord ) TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) { TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, @@ -194,7 +194,7 @@ index 1d1b879310e..c8a8d1d1d33 100644 error: diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index 0bffa4029c1..03dc27b083c 100644 +index 0279690806c..6969a528eeb 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -58,6 +58,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(seh); @@ -227,10 +227,10 @@ index 0bffa4029c1..03dc27b083c 100644 teb = virtual_alloc_first_teb(); teb->WOW32Reserved = syscall_handler; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index b7b66b6b440..23c434dd7aa 100644 +index 19196dbb296..e99e89864c2 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -111,7 +111,8 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE +@@ -108,7 +108,8 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN; extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend, unsigned int *cpus, BOOL *wow64, @@ -240,7 +240,7 @@ index b7b66b6b440..23c434dd7aa 100644 extern void CDECL DECLSPEC_NORETURN exit_thread( int status ) DECLSPEC_HIDDEN; extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; -@@ -147,6 +148,9 @@ extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN; +@@ -140,6 +141,9 @@ extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN; extern NTSTATUS exec_wineloader( char **argv, int socketfd, int is_child_64bit, ULONGLONG res_start, ULONGLONG res_end ) DECLSPEC_HIDDEN; @@ -251,19 +251,19 @@ index b7b66b6b440..23c434dd7aa 100644 extern void server_enter_uninterrupted_section( RTL_CRITICAL_SECTION *cs, sigset_t *sigset ) DECLSPEC_HIDDEN; extern void server_leave_uninterrupted_section( RTL_CRITICAL_SECTION *cs, sigset_t *sigset ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index dae93ab1632..5103e50d7ff 100644 +index b09f4942f05..b952af4596a 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 48 -+#define NTDLL_UNIXLIB_VERSION 49 +-#define NTDLL_UNIXLIB_VERSION 53 ++#define NTDLL_UNIXLIB_VERSION 54 struct unix_funcs { -@@ -253,7 +253,8 @@ struct unix_funcs +@@ -281,7 +281,8 @@ struct unix_funcs /* thread/process functions */ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, diff --git a/patches/ntdll-SystemModuleInformation/0002-ntdll-Return-ntdll.dll-as-the-first-entry-for-System.patch b/patches/ntdll-SystemModuleInformation/0002-ntdll-Return-ntdll.dll-as-the-first-entry-for-System.patch index dba4a4a4..b7bf86c5 100644 --- a/patches/ntdll-SystemModuleInformation/0002-ntdll-Return-ntdll.dll-as-the-first-entry-for-System.patch +++ b/patches/ntdll-SystemModuleInformation/0002-ntdll-Return-ntdll.dll-as-the-first-entry-for-System.patch @@ -1,4 +1,4 @@ -From 223c2c82eba0aacee744f6d9fcf9189cff2fd1e7 Mon Sep 17 00:00:00 2001 +From 511be7951f851cda2b2119a88b7f1895598a7165 Mon Sep 17 00:00:00 2001 From: Andrew Wesie Date: Fri, 12 Apr 2019 20:04:03 -0500 Subject: [PATCH] ntdll: Return ntdll.dll as the first entry for @@ -9,11 +9,11 @@ Subject: [PATCH] ntdll: Return ntdll.dll as the first entry for 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c -index f44c232f4e9..ebb8c94bd11 100644 +index 44ffef6439b..c47219b1d33 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c -@@ -2546,6 +2546,33 @@ BOOLEAN WINAPI RtlIsProcessorFeaturePresent( UINT feature ) - return feature < PROCESSOR_FEATURE_MAX && user_shared_data->ProcessorFeatures[feature]; +@@ -2665,6 +2665,33 @@ static BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi) + return ret; } +static void get_ntdll_system_module(SYSTEM_MODULE *sm) @@ -46,7 +46,7 @@ index f44c232f4e9..ebb8c94bd11 100644 /****************************************************************************** * NtQuerySystemInformation [NTDLL.@] * ZwQuerySystemInformation [NTDLL.@] -@@ -2882,7 +2909,7 @@ NTSTATUS WINAPI NtQuerySystemInformation( +@@ -3015,7 +3042,7 @@ NTSTATUS WINAPI NtQuerySystemInformation( FIXME("returning fake driver list\n"); smi->ModulesCount = 1; @@ -56,5 +56,5 @@ index f44c232f4e9..ebb8c94bd11 100644 } break; -- -2.26.0 +2.27.0 diff --git a/patches/ntdll-ThreadTime/0006-ntdll-Fill-process-virtual-memory-counters-in-NtQuer.patch b/patches/ntdll-ThreadTime/0006-ntdll-Fill-process-virtual-memory-counters-in-NtQuer.patch index 829d8f4d..cd1965ce 100644 --- a/patches/ntdll-ThreadTime/0006-ntdll-Fill-process-virtual-memory-counters-in-NtQuer.patch +++ b/patches/ntdll-ThreadTime/0006-ntdll-Fill-process-virtual-memory-counters-in-NtQuer.patch @@ -1,4 +1,4 @@ -From ee29bbfa7e10de295db39ab6b89f2175d00692c5 Mon Sep 17 00:00:00 2001 +From 3d5a92cbec870c2b129668b455012bf5b2693ccd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 9 Mar 2017 22:56:45 +0100 Subject: [PATCH] ntdll: Fill process virtual memory counters in @@ -6,62 +6,21 @@ Subject: [PATCH] ntdll: Fill process virtual memory counters in FIXME: fill_VM_COUNTERS now uses a different method ... which one is better? --- - dlls/ntdll/nt.c | 3 +++ - dlls/ntdll/ntdll_misc.h | 1 + - dlls/ntdll/process.c | 2 +- - dlls/ntdll/thread.c | 36 ++++++++++++++++++++++++++++++++++++ - 4 files changed, 41 insertions(+), 1 deletion(-) + dlls/ntdll/nt.c | 41 +++++++++++++++++++++++++++++++++++++++ + dlls/ntdll/thread.c | 1 - + dlls/ntdll/unix/process.c | 39 ++++++++++++++++++++++++++++++++++++- + 3 files changed, 79 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c -index cbb7937631d..bb078c1aa21 100644 +index c1c7a126daf..8b450082ada 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c -@@ -2686,8 +2686,11 @@ NTSTATUS WINAPI NtQuerySystemInformation( - /* spi->ti will be set later on */ - - if (reply->unix_pid != -1) -+ { - read_process_time(reply->unix_pid, -1, clk_tck, - &spi->KernelTime, &spi->UserTime); -+ read_process_memory_stats(reply->unix_pid, &spi->vmCounters); -+ } - unix_pid = reply->unix_pid; - } - len += procstructlen; -diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index 6e77694d87b..d725a678246 100644 ---- a/dlls/ntdll/ntdll_misc.h -+++ b/dlls/ntdll/ntdll_misc.h -@@ -248,6 +248,7 @@ void WINAPI LdrInitializeThunk(CONTEXT*,void**,ULONG_PTR,ULONG_PTR); - /* process / thread time */ - extern BOOL read_process_time(int unix_pid, int unix_tid, unsigned long clk_tck, - LARGE_INTEGER *kernel, LARGE_INTEGER *user) DECLSPEC_HIDDEN; -+extern BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi) DECLSPEC_HIDDEN; - - /* string functions */ - int __cdecl NTDLL_tolower( int c ); -diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c -index 35937ce6026..b4f2dbc8160 100644 ---- a/dlls/ntdll/process.c -+++ b/dlls/ntdll/process.c -@@ -192,7 +192,7 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) - - static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) - { -- /* FIXME : real data */ -+ read_process_memory_stats(getpid(), pvmi); +@@ -2627,6 +2627,44 @@ BOOLEAN WINAPI RtlIsProcessorFeaturePresent( UINT feature ) + return feature < PROCESSOR_FEATURE_MAX && user_shared_data->ProcessorFeatures[feature]; } - #endif -diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 14198d77b7b..8ae8251f975 100644 ---- a/dlls/ntdll/thread.c -+++ b/dlls/ntdll/thread.c -@@ -381,6 +381,42 @@ NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle_ptr, ACCESS_MASK access, OBJECT - flags, zero_bits, stack_commit, stack_reserve, attr_list ); - } - -+BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi) ++/* Remove once NtQuerySystemInformation is moved to unix directory */ ++static BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi) +{ + BOOL ret = FALSE; +#ifdef __linux__ @@ -97,9 +56,91 @@ index 14198d77b7b..8ae8251f975 100644 +#endif + return ret; +} ++ + /****************************************************************************** + * NtQuerySystemInformation [NTDLL.@] + * ZwQuerySystemInformation [NTDLL.@] +@@ -2784,8 +2822,11 @@ NTSTATUS WINAPI NtQuerySystemInformation( + /* spi->ti will be set later on */ + if (reply->unix_pid != -1) ++ { + read_process_time(reply->unix_pid, -1, clk_tck, + &spi->KernelTime, &spi->UserTime); ++ read_process_memory_stats(reply->unix_pid, &spi->vmCounters); ++ } + unix_pid = reply->unix_pid; + } + len += procstructlen; +diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c +index 29a9c19b923..320e63416cc 100644 +--- a/dlls/ntdll/thread.c ++++ b/dlls/ntdll/thread.c +@@ -373,7 +373,6 @@ NTSTATUS WINAPI NtCreateThreadEx( HANDLE *handle_ptr, ACCESS_MASK access, OBJECT + flags, zero_bits, stack_commit, stack_reserve, attr_list ); + } + +- /*********************************************************************** * RtlCreateUserThread (NTDLL.@) + */ +diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c +index 379a0036b63..210006f4c23 100644 +--- a/dlls/ntdll/unix/process.c ++++ b/dlls/ntdll/unix/process.c +@@ -989,6 +989,43 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) + #endif + } + ++static BOOL read_process_memory_stats(int unix_pid, VM_COUNTERS *pvmi) ++{ ++ BOOL ret = FALSE; ++#ifdef __linux__ ++ unsigned long size, resident, shared, trs, drs, lrs, dt; ++ char buf[512]; ++ FILE *fp; ++ ++ sprintf( buf, "/proc/%u/statm", unix_pid ); ++ if ((fp = fopen( buf, "r" ))) ++ { ++ if (fscanf( fp, "%lu %lu %lu %lu %lu %lu %lu", ++ &size, &resident, &shared, &trs, &drs, &lrs, &dt ) == 7) ++ { ++ pvmi->VirtualSize = size * page_size; ++ pvmi->WorkingSetSize = resident * page_size; ++ pvmi->PrivatePageCount = size - shared; ++ ++ /* these values are not available through /proc/pid/statm */ ++ pvmi->PeakVirtualSize = pvmi->VirtualSize; ++ pvmi->PageFaultCount = 0; ++ pvmi->PeakWorkingSetSize = pvmi->WorkingSetSize; ++ pvmi->QuotaPagedPoolUsage = pvmi->VirtualSize; ++ pvmi->QuotaPeakPagedPoolUsage = pvmi->QuotaPagedPoolUsage; ++ pvmi->QuotaPeakNonPagedPoolUsage = 0; ++ pvmi->QuotaNonPagedPoolUsage = 0; ++ pvmi->PagefileUsage = 0; ++ pvmi->PeakPagefileUsage = 0; ++ ++ ret = TRUE; ++ } ++ fclose( fp ); ++ } ++#endif ++ return ret; ++} ++ + #elif defined(linux) + + static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) +@@ -1024,7 +1061,7 @@ static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) + + static void fill_VM_COUNTERS(VM_COUNTERS* pvmi) + { +- /* FIXME : real data */ ++ read_process_memory_stats(getpid(), pvmi); + } + + #endif -- -2.26.2 +2.27.0 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 12cccae1..b40a8843 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb" + echo "f56e409c2feb62056eb133e53fe398eadd0a503e" } # Show version information @@ -1881,9 +1881,9 @@ fi # | Modified files: # | * configure.ac, dlls/advapi32/tests/Makefile.in, dlls/advapi32/tests/security.c, dlls/kernelbase/process.c, # | dlls/ntdll/loader.c, dlls/ntdll/nt.c, dlls/ntdll/ntdll.spec, dlls/ntdll/ntdll_misc.h, dlls/ntdll/process.c, -# | dlls/shell32/shlexec.c, dlls/user32/win.c, programs/runas/Makefile.in, programs/runas/runas.c, programs/runas/runas.h, -# | programs/runas/runas.rc, server/process.c, server/process.h, server/protocol.def, server/request.c, server/security.h, -# | server/token.c +# | dlls/ntdll/unix/process.c, dlls/shell32/shlexec.c, dlls/user32/win.c, programs/runas/Makefile.in, +# | programs/runas/runas.c, programs/runas/runas.h, programs/runas/runas.rc, server/process.c, server/process.h, +# | server/protocol.def, server/request.c, server/security.h, server/token.c # | if test "$enable_advapi32_Token_Integrity_Level" -eq 1; then patch_apply advapi32-Token_Integrity_Level/0001-advapi32-tests-Extend-security-label-token-integrity.patch @@ -3455,7 +3455,7 @@ fi # | * [#20230] Return correct values for GetThreadTimes function # | # | Modified files: -# | * dlls/ntdll/nt.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/process.c, dlls/ntdll/thread.c, server/protocol.def, +# | * dlls/ntdll/nt.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/thread.c, dlls/ntdll/unix/process.c, server/protocol.def, # | server/snapshot.c, server/thread.c, server/thread.h # | if test "$enable_ntdll_ThreadTime" -eq 1; then @@ -3870,7 +3870,7 @@ fi # | 2.x) # | # | Modified files: -# | * dlls/ntdll/process.c +# | * dlls/ntdll/unix/process.c # | if test "$enable_ntdll_ProcessQuotaLimits" -eq 1; then patch_apply ntdll-ProcessQuotaLimits/0001-ntdll-Add-fake-data-implementation-for-ProcessQuotaL.patch diff --git a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch index 5231062b..18c61a33 100644 --- a/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch +++ b/patches/winebuild-Fake_Dlls/0003-winebuild-Generate-syscall-thunks-for-ntdll-exports.patch @@ -1,4 +1,4 @@ -From 7e13aba360d1dd4d5a09f5b9a624dfa4e61d3ddf Mon Sep 17 00:00:00 2001 +From 51d9c664ba86df86b3fb02a281642b5940cef430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 11 May 2017 05:32:55 +0200 Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports. @@ -22,10 +22,10 @@ Based on a patch by Erich E. Hoover. 14 files changed, 221 insertions(+), 32 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index a09c17e3b50..d22fd0141c0 100644 +index 99bcff94b3e..06cdf5cd350 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c -@@ -3812,6 +3812,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) +@@ -4020,6 +4020,7 @@ PIMAGE_NT_HEADERS WINAPI RtlImageNtHeader(HMODULE hModule) return ret; } @@ -33,7 +33,7 @@ index a09c17e3b50..d22fd0141c0 100644 /****************************************************************** * LdrInitializeThunk (NTDLL.@) -@@ -3828,6 +3829,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow +@@ -4037,6 +4038,8 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow WINE_MODREF *wm; LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; @@ -65,7 +65,7 @@ index 21cc1b3ead4..18be5693a7d 100644 } return unix_funcs->NtGetContextThread( handle, context ); diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c -index a5e6faa461a..51938bf84cc 100644 +index 1389a542cde..54796476e25 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c @@ -1643,6 +1643,8 @@ static void test_thread_context(void) @@ -78,10 +78,10 @@ index a5e6faa461a..51938bf84cc 100644 ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs ); ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs ); diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 5a6809638ae..c6988ce08e3 100644 +index 64dee4d0c12..2a22f1ca137 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c -@@ -170,6 +170,14 @@ int __cdecl __wine_dbg_output( const char *str ) +@@ -220,6 +220,14 @@ int __cdecl __wine_dbg_output( const char *str ) return unix_funcs->dbg_output( str ); } @@ -96,7 +96,7 @@ index 5a6809638ae..c6988ce08e3 100644 /*********************************************************************** * thread_init -@@ -181,7 +189,7 @@ int __cdecl __wine_dbg_output( const char *str ) +@@ -231,7 +239,7 @@ int __cdecl __wine_dbg_output( const char *str ) TEB *thread_init( SIZE_T *info_size, BOOL *suspend ) { TEB *teb = unix_funcs->init_threading( &nb_threads, &__wine_ldt_copy, info_size, suspend, &server_cpus, @@ -106,7 +106,7 @@ index 5a6809638ae..c6988ce08e3 100644 peb = teb->Peb; peb->FastPebLock = &peb_lock; diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index 0470f5eaa8a..55afc1748ef 100644 +index 34cf12885d9..212ebda0443 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -85,7 +85,7 @@ static void pthread_exit_wrapper( int status ) @@ -127,10 +127,10 @@ index 0470f5eaa8a..55afc1748ef 100644 thread_data->request_fd = -1; thread_data->reply_fd = -1; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 0d1d0e5025f..ac792801283 100644 +index f19c8924008..e668c8e6fbb 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -111,7 +111,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE +@@ -108,7 +108,7 @@ extern void CDECL server_release_fd( HANDLE handle, int unix_fd ) DECLSPEC_HIDDE extern void CDECL server_init_process_done( void *relay ) DECLSPEC_HIDDEN; extern TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, BOOL *suspend, unsigned int *cpus, BOOL *wow64, @@ -140,19 +140,19 @@ index 0d1d0e5025f..ac792801283 100644 extern void CDECL DECLSPEC_NORETURN exit_process( int status ) DECLSPEC_HIDDEN; extern NTSTATUS CDECL get_thread_ldt_entry( HANDLE handle, void *data, ULONG len, ULONG *ret_len ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index dd5c3e3784e..dae93ab1632 100644 +index dbe68a1b486..b09f4942f05 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 47 -+#define NTDLL_UNIXLIB_VERSION 48 +-#define NTDLL_UNIXLIB_VERSION 52 ++#define NTDLL_UNIXLIB_VERSION 53 struct unix_funcs { -@@ -253,7 +253,7 @@ struct unix_funcs +@@ -281,7 +281,7 @@ struct unix_funcs /* thread/process functions */ TEB * (CDECL *init_threading)( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZE_T *size, @@ -162,10 +162,10 @@ index dd5c3e3784e..dae93ab1632 100644 void (CDECL *exit_process)( int status ); NTSTATUS (CDECL *get_thread_ldt_entry)( HANDLE handle, void *data, ULONG len, ULONG *ret_len ); diff --git a/include/winternl.h b/include/winternl.h -index 04e5dd1f62f..2b9a12cbb31 100644 +index 4f5ce4d0cfe..7d69a448e89 100644 --- a/include/winternl.h +++ b/include/winternl.h -@@ -359,7 +359,7 @@ typedef struct _TEB +@@ -360,7 +360,7 @@ typedef struct _TEB PVOID CsrClientThread; /* 03c/0070 */ PVOID Win32ThreadInfo; /* 040/0078 */ ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */ diff --git a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch index c40eb8ca..102fa77a 100644 --- a/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch +++ b/patches/winebuild-Fake_Dlls/0010-tools-winebuild-Add-syscall-thunks-for-64-bit.patch @@ -1,4 +1,4 @@ -From b37d55d71b294fb96cb4816f2cb3f2448731e115 Mon Sep 17 00:00:00 2001 +From 88dc845f605a87a97247d4d2c795722afeba41dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 7 Sep 2017 00:38:09 +0200 Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. @@ -15,10 +15,10 @@ Subject: [PATCH] tools/winebuild: Add syscall thunks for 64 bit. 8 files changed, 305 insertions(+), 14 deletions(-) diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c -index 95939ba6bde..ae5462f6e55 100644 +index 1f525194ce7..21af7b4ce7a 100644 --- a/dlls/kernel32/tests/loader.c +++ b/dlls/kernel32/tests/loader.c -@@ -1573,7 +1573,7 @@ static void test_filenames(void) +@@ -1574,7 +1574,7 @@ static void test_filenames(void) static void test_FakeDLL(void) { @@ -27,7 +27,7 @@ index 95939ba6bde..ae5462f6e55 100644 NTSTATUS (WINAPI *pNtSetEvent)(HANDLE, ULONG *) = NULL; IMAGE_EXPORT_DIRECTORY *dir; HMODULE module = GetModuleHandleA("ntdll.dll"); -@@ -1615,8 +1615,13 @@ static void test_FakeDLL(void) +@@ -1616,8 +1616,13 @@ static void test_FakeDLL(void) dll_func = (BYTE *)GetProcAddress(module, func_name); ok(dll_func != NULL, "%s: GetProcAddress returned NULL\n", func_name); @@ -42,7 +42,7 @@ index 95939ba6bde..ae5462f6e55 100644 todo_wine ok(0, "%s: Export is a stub-function, skipping\n", func_name); continue; diff --git a/dlls/ntdll/unix/thread.c b/dlls/ntdll/unix/thread.c -index 55afc1748ef..0bffa4029c1 100644 +index 212ebda0443..0279690806c 100644 --- a/dlls/ntdll/unix/thread.c +++ b/dlls/ntdll/unix/thread.c @@ -110,7 +110,7 @@ TEB * CDECL init_threading( int *nb_threads_ptr, struct ldt_copy **ldt_copy, SIZ @@ -55,23 +55,23 @@ index 55afc1748ef..0bffa4029c1 100644 NtCreateKeyedEvent( &keyed_event, GENERIC_READ | GENERIC_WRITE, NULL, 0 ); diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index ac792801283..b7b66b6b440 100644 +index e668c8e6fbb..19196dbb296 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -176,7 +176,7 @@ extern void virtual_init(void) DECLSPEC_HIDDEN; +@@ -171,7 +171,7 @@ extern ULONG_PTR get_system_affinity_mask(void) DECLSPEC_HIDDEN; extern TEB *virtual_alloc_first_teb(void) DECLSPEC_HIDDEN; extern NTSTATUS virtual_alloc_teb( TEB **ret_teb ) DECLSPEC_HIDDEN; extern void virtual_free_teb( TEB *teb ) DECLSPEC_HIDDEN; -extern void virtual_map_user_shared_data(void) DECLSPEC_HIDDEN; +extern void virtual_map_user_shared_data(void *) DECLSPEC_HIDDEN; extern NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err, BOOL on_signal_stack ) DECLSPEC_HIDDEN; - extern BOOL virtual_is_valid_code_address( const void *addr, SIZE_T size ) DECLSPEC_HIDDEN; - extern int virtual_handle_stack_fault( void *addr ) DECLSPEC_HIDDEN; + extern unsigned int virtual_locked_server_call( void *req_ptr ) DECLSPEC_HIDDEN; + extern ssize_t virtual_locked_read( int fd, void *addr, size_t size ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c -index b656a62c154..9b415fe5058 100644 +index a3b2cb2c477..5cf4eb626c0 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c -@@ -2588,14 +2588,14 @@ TEB *virtual_alloc_first_teb(void) +@@ -2771,14 +2771,14 @@ TEB *virtual_alloc_first_teb(void) TEB *teb; PEB *peb; NTSTATUS status; @@ -88,7 +88,7 @@ index b656a62c154..9b415fe5058 100644 if (status) { ERR( "wine: failed to map the shared user data: %08x\n", status ); -@@ -2791,7 +2791,7 @@ void virtual_clear_thread_stack( void *stack_end ) +@@ -2976,7 +2976,7 @@ void virtual_clear_thread_stack( void *stack_end ) /*********************************************************************** * virtual_map_user_shared_data */ @@ -97,7 +97,7 @@ index b656a62c154..9b415fe5058 100644 { static const WCHAR wine_usdW[] = {'\\','K','e','r','n','e','l','O','b','j','e','c','t','s', '\\','_','_','w','i','n','e','_','u','s','e','r','_','s','h','a','r','e','d','_','d','a','t','a',0}; -@@ -2814,6 +2814,11 @@ void virtual_map_user_shared_data(void) +@@ -2999,6 +2999,11 @@ void virtual_map_user_shared_data(void) ERR( "failed to remap the process USD: %d\n", res ); exit(1); } diff --git a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch index a851402f..52165cb8 100644 --- a/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch +++ b/patches/ws2_32-WSACleanup/0002-ws2_32-Invalidate-client-side-file-descriptor-cache-.patch @@ -1,4 +1,4 @@ -From 02562df4bb8c6c805b140335b9076a2a895244bf Mon Sep 17 00:00:00 2001 +From 679dcbe5add05885cf675a43b529e569f8b5c8af Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 6 Sep 2015 12:41:17 +0200 Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in @@ -17,10 +17,10 @@ Subject: [PATCH] ws2_32: Invalidate client-side file descriptor cache in 9 files changed, 36 insertions(+), 5 deletions(-) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec -index 0b0d4587969..99d4c57cdfe 100644 +index a9422723b71..e4f2f0e9c2b 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec -@@ -1577,6 +1577,7 @@ +@@ -1578,6 +1578,7 @@ # Server interface @ cdecl -norelay wine_server_call(ptr) @@ -48,11 +48,11 @@ index 9e1cc85a36e..3f4ba60b7bb 100644 /*********************************************************************** * wine_server_release_fd (NTDLL.@) diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c -index 73be77e7afc..2393f73b306 100644 +index 0d4313089d6..1d288770573 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c -@@ -952,6 +952,7 @@ static struct unix_funcs unix_funcs = - fork_and_exec, +@@ -955,6 +955,7 @@ static struct unix_funcs unix_funcs = + exec_process, wine_server_call, server_send_fd, + server_remove_fds_from_cache_by_type, @@ -60,10 +60,10 @@ index 73be77e7afc..2393f73b306 100644 server_fd_to_handle, server_handle_to_fd, diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c -index cf6f6c3832c..586d0ffcf72 100644 +index 5faca657783..2e278480896 100644 --- a/dlls/ntdll/unix/server.c +++ b/dlls/ntdll/unix/server.c -@@ -995,6 +995,26 @@ static int remove_fd_from_cache( HANDLE handle ) +@@ -1003,6 +1003,26 @@ static int remove_fd_from_cache( HANDLE handle ) return fd; } @@ -91,10 +91,10 @@ index cf6f6c3832c..586d0ffcf72 100644 /*********************************************************************** * server_get_unix_fd diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h -index 223015a785a..9c385ec42d8 100644 +index 2d4996a12f2..f19c8924008 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h -@@ -99,6 +99,7 @@ extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN; +@@ -96,6 +96,7 @@ extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN; extern void CDECL virtual_set_large_address_space(void) DECLSPEC_HIDDEN; extern void CDECL server_send_fd( int fd ) DECLSPEC_HIDDEN; @@ -103,19 +103,19 @@ index 223015a785a..9c385ec42d8 100644 int *needs_close, enum server_fd_type *type, unsigned int *options ) DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h -index 6c8e151b554..dd5c3e3784e 100644 +index 7fd483dcabe..dbe68a1b486 100644 --- a/dlls/ntdll/unixlib.h +++ b/dlls/ntdll/unixlib.h @@ -28,7 +28,7 @@ struct ldt_copy; struct msghdr; /* increment this when you change the function table */ --#define NTDLL_UNIXLIB_VERSION 46 -+#define NTDLL_UNIXLIB_VERSION 47 +-#define NTDLL_UNIXLIB_VERSION 51 ++#define NTDLL_UNIXLIB_VERSION 52 struct unix_funcs { -@@ -267,6 +267,7 @@ struct unix_funcs +@@ -290,6 +290,7 @@ struct unix_funcs /* server functions */ unsigned int (CDECL *server_call)( void *req_ptr ); void (CDECL *server_send_fd)( int fd ); diff --git a/staging/upstream-commit b/staging/upstream-commit index 2becbdc3..a3fc3f61 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb +f56e409c2feb62056eb133e53fe398eadd0a503e