Disable ntdll-NtAlertThreadByThreadId patchset

This patchset is causing applications to freeze on startup (intermittently).

Disabled until the root cause can be fixed.
This commit is contained in:
Alistair Leslie-Hughes 2020-12-13 09:05:30 +11:00
parent a8684593e2
commit 8cbc70df46
5 changed files with 34 additions and 93 deletions

View File

@ -1,4 +1,4 @@
From d02623b1c4d0fa97ea990d160529ecd98da08a85 Mon Sep 17 00:00:00 2001
From 0cf6433af95363c5fbba2af482b2ba50b863dfb7 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
@ -9,7 +9,7 @@ Subject: [PATCH] ntdll: Print a warning message specifying the wine-staging
1 file changed, 15 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 440a77d4063..3e3acdc5eac 100644
index 20bc3f977d1..c2187a19397 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -44,6 +44,7 @@ WINE_DECLARE_DEBUG_CHANNEL(relay);
@ -20,7 +20,7 @@ index 440a77d4063..3e3acdc5eac 100644
#ifdef _WIN64
#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232)
@@ -3509,6 +3510,7 @@ static void process_breakpoint(void)
@@ -3456,6 +3457,7 @@ static void process_breakpoint(void)
__ENDTRY
}
@ -28,7 +28,7 @@ index 440a77d4063..3e3acdc5eac 100644
/******************************************************************
* LdrInitializeThunk (NTDLL.@)
@@ -3518,6 +3520,9 @@ static void process_breakpoint(void)
@@ -3465,6 +3467,9 @@ static void process_breakpoint(void)
*/
void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR unknown3, ULONG_PTR unknown4 )
{
@ -38,7 +38,7 @@ index 440a77d4063..3e3acdc5eac 100644
static int attach_done;
int i;
NTSTATUS status;
@@ -3536,6 +3541,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
@@ -3483,6 +3488,16 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, ULONG_PTR unknown2, ULONG_PTR
entry = (void **)&context->u.s.X0;
#endif
@ -54,7 +54,7 @@ index 440a77d4063..3e3acdc5eac 100644
+
if (process_detaching) NtTerminateThread( GetCurrentThread(), 0 );
teb_list_wrlock();
RtlEnterCriticalSection( &loader_section );
--
2.29.2
2.28.0

View File

@ -1 +1 @@
Depends: ntdll-NtAlertThreadByThreadId
#Depends: ntdll-NtAlertThreadByThreadId

View File

@ -1,2 +1,3 @@
Fixes: Do not allow to deallocate thread stack for current thread
Depends: ntdll-NtAlertThreadByThreadId
#Depends: ntdll-NtAlertThreadByThreadId

View File

@ -1,2 +1,3 @@
Fixes: [50292] Process-local synchronization objects use private interfaces into the Unix library
Depends: server-Object_Types
Disabled: True

View File

@ -169,7 +169,6 @@ patch_enable_all ()
enable_ntdll_Junction_Points="$1"
enable_ntdll_Manifest_Range="$1"
enable_ntdll_NtAccessCheck="$1"
enable_ntdll_NtAlertThreadByThreadId="$1"
enable_ntdll_NtDevicePath="$1"
enable_ntdll_NtQueryEaFile="$1"
enable_ntdll_NtQuerySection="$1"
@ -590,9 +589,6 @@ patch_enable ()
ntdll-NtAccessCheck)
enable_ntdll_NtAccessCheck="$2"
;;
ntdll-NtAlertThreadByThreadId)
enable_ntdll_NtAlertThreadByThreadId="$2"
;;
ntdll-NtDevicePath)
enable_ntdll_NtDevicePath="$2"
;;
@ -1565,13 +1561,6 @@ if test "$enable_ntdll_NtDevicePath" -eq 1; then
enable_ntdll_Pipe_SpecialCharacters=1
fi
if test "$enable_ntdll_Dealloc_Thread_Stack" -eq 1; then
if test "$enable_ntdll_NtAlertThreadByThreadId" -gt 1; then
abort "Patchset ntdll-NtAlertThreadByThreadId disabled, but ntdll-Dealloc_Thread_Stack depends on that."
fi
enable_ntdll_NtAlertThreadByThreadId=1
fi
if test "$enable_ntdll_Builtin_Prot" -eq 1; then
if test "$enable_ntdll_WRITECOPY" -gt 1; then
abort "Patchset ntdll-WRITECOPY disabled, but ntdll-Builtin_Prot depends on that."
@ -1672,20 +1661,6 @@ if test "$enable_nvapi_Stub_DLL" -eq 1; then
enable_nvcuda_CUDA_Support=1
fi
if test "$enable_Staging" -eq 1; then
if test "$enable_ntdll_NtAlertThreadByThreadId" -gt 1; then
abort "Patchset ntdll-NtAlertThreadByThreadId disabled, but Staging depends on that."
fi
enable_ntdll_NtAlertThreadByThreadId=1
fi
if test "$enable_ntdll_NtAlertThreadByThreadId" -eq 1; then
if test "$enable_server_Object_Types" -gt 1; then
abort "Patchset server-Object_Types disabled, but ntdll-NtAlertThreadByThreadId depends on that."
fi
enable_server_Object_Types=1
fi
# Patchset Compiler_Warnings
# |
@ -1724,64 +1699,8 @@ if test "$enable_Pipelight" -eq 1; then
patch_apply Pipelight/0004-winex11.drv-Indicate-direct-rendering-through-OpenGL.patch
fi
# Patchset server-Object_Types
# |
# | This patchset fixes the following Wine bugs:
# | * [#44629] Process Hacker can't enumerate handles
# | * [#45374] Yet Another Process Monitor (.NET 2.0 app) reports System.AccessViolationException
# |
# | Modified files:
# | * dlls/ntdll/tests/info.c, dlls/ntdll/tests/om.c, dlls/ntdll/unix/file.c, dlls/ntdll/unix/system.c, include/winternl.h,
# | server/completion.c, server/directory.c, server/event.c, server/file.c, server/handle.c, server/mailslot.c,
# | server/main.c, server/mapping.c, server/mutex.c, server/named_pipe.c, server/object.c, server/object.h,
# | server/process.c, server/protocol.def, server/registry.c, server/semaphore.c, server/symlink.c, server/thread.c,
# | server/timer.c, server/token.c, server/winstation.c
# |
if test "$enable_server_Object_Types" -eq 1; then
patch_apply server-Object_Types/0001-ntdll-Implement-SystemExtendedHandleInformation-in-N.patch
patch_apply server-Object_Types/0002-ntdll-Implement-ObjectTypesInformation-in-NtQueryObj.patch
patch_apply server-Object_Types/0003-server-Register-types-during-startup.patch
patch_apply server-Object_Types/0004-server-Rename-ObjectType-to-Type.patch
patch_apply server-Object_Types/0008-ntdll-Set-TypeIndex-for-ObjectTypeInformation-in-NtQ.patch
patch_apply server-Object_Types/0009-ntdll-Set-object-type-for-System-Extended-HandleInfo.patch
patch_apply server-Object_Types/0010-ntdll-Mimic-object-type-behavior-for-different-windo.patch
fi
# Patchset ntdll-NtAlertThreadByThreadId
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * server-Object_Types
# |
# | This patchset fixes the following Wine bugs:
# | * [#50292] Process-local synchronization objects use private interfaces into the Unix library
# |
# | Modified files:
# | * dlls/ntdll/Makefile.in, dlls/ntdll/critsection.c, dlls/ntdll/loader.c, dlls/ntdll/ntdll.spec, dlls/ntdll/ntdll_misc.h,
# | dlls/ntdll/sync.c, dlls/ntdll/tests/Makefile.in, dlls/ntdll/tests/om.c, dlls/ntdll/tests/sync.c,
# | dlls/ntdll/unix/loader.c, dlls/ntdll/unix/sync.c, dlls/ntdll/unix/thread.c, dlls/ntdll/unix/unix_private.h,
# | dlls/ntdll/unix/virtual.c, dlls/ntdll/unixlib.h, include/winbase.h, include/winternl.h
# |
if test "$enable_ntdll_NtAlertThreadByThreadId" -eq 1; then
patch_apply ntdll-NtAlertThreadByThreadId/0001-ntdll-tests-Move-some-tests-to-a-new-sync.c-file.patch
patch_apply ntdll-NtAlertThreadByThreadId/0002-ntdll-tests-Add-some-tests-for-Rtl-resources.patch
patch_apply ntdll-NtAlertThreadByThreadId/0003-ntdll-Use-a-separate-mutex-to-lock-the-TEB-list.patch
patch_apply ntdll-NtAlertThreadByThreadId/0004-ntdll-Implement-NtAlertThreadByThreadId-and-NtWaitFo.patch
patch_apply ntdll-NtAlertThreadByThreadId/0005-ntdll-tests-Add-basic-tests-for-thread-id-alert-func.patch
patch_apply ntdll-NtAlertThreadByThreadId/0006-ntdll-Implement-thread-id-alerts-on-top-of-futexes-i.patch
patch_apply ntdll-NtAlertThreadByThreadId/0007-ntdll-Implement-thread-id-alerts-on-top-of-Mach-sema.patch
patch_apply ntdll-NtAlertThreadByThreadId/0008-ntdll-Use-a-separate-lock-to-access-the-PE-TEB-list.patch
patch_apply ntdll-NtAlertThreadByThreadId/0009-ntdll-Reimplement-Win32-futexes-on-top-of-thread-ID-.patch
patch_apply ntdll-NtAlertThreadByThreadId/0010-ntdll-Merge-critsection.c-into-sync.c.patch
patch_apply ntdll-NtAlertThreadByThreadId/0011-ntdll-Reimplement-the-critical-section-fast-path-on-.patch
patch_apply ntdll-NtAlertThreadByThreadId/0012-ntdll-Get-rid-of-the-direct-futex-path-for-condition.patch
patch_apply ntdll-NtAlertThreadByThreadId/0013-ntdll-Reimplement-SRW-locks-on-top-of-Win32-futexes.patch
fi
# Patchset Staging
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * server-Object_Types, ntdll-NtAlertThreadByThreadId
# |
# | Modified files:
# | * dlls/ntdll/loader.c
# |
@ -3075,9 +2994,6 @@ fi
# Patchset ntdll-Dealloc_Thread_Stack
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * server-Object_Types, ntdll-NtAlertThreadByThreadId
# |
# | Modified files:
# | * dlls/ntdll/unix/unix_private.h, dlls/ntdll/unix/virtual.c
# |
@ -3628,6 +3544,29 @@ if test "$enable_server_Key_State" -eq 1; then
patch_apply server-Key_State/0002-server-Implement-locking-and-synchronization-of-keys.patch
fi
# Patchset server-Object_Types
# |
# | This patchset fixes the following Wine bugs:
# | * [#44629] Process Hacker can't enumerate handles
# | * [#45374] Yet Another Process Monitor (.NET 2.0 app) reports System.AccessViolationException
# |
# | Modified files:
# | * dlls/ntdll/tests/info.c, dlls/ntdll/tests/om.c, dlls/ntdll/unix/file.c, dlls/ntdll/unix/system.c, include/winternl.h,
# | server/completion.c, server/directory.c, server/event.c, server/file.c, server/handle.c, server/mailslot.c,
# | server/main.c, server/mapping.c, server/mutex.c, server/named_pipe.c, server/object.c, server/object.h,
# | server/process.c, server/protocol.def, server/registry.c, server/semaphore.c, server/symlink.c, server/thread.c,
# | server/timer.c, server/token.c, server/winstation.c
# |
if test "$enable_server_Object_Types" -eq 1; then
patch_apply server-Object_Types/0001-ntdll-Implement-SystemExtendedHandleInformation-in-N.patch
patch_apply server-Object_Types/0002-ntdll-Implement-ObjectTypesInformation-in-NtQueryObj.patch
patch_apply server-Object_Types/0003-server-Register-types-during-startup.patch
patch_apply server-Object_Types/0004-server-Rename-ObjectType-to-Type.patch
patch_apply server-Object_Types/0008-ntdll-Set-TypeIndex-for-ObjectTypeInformation-in-NtQ.patch
patch_apply server-Object_Types/0009-ntdll-Set-object-type-for-System-Extended-HandleInfo.patch
patch_apply server-Object_Types/0010-ntdll-Mimic-object-type-behavior-for-different-windo.patch
fi
# Patchset server-Registry_Notifications
# |
# | Modified files: