[PATCH] ntdll: Don't call possibly deadly DbgUiGetThreadDebugObject.

Rémi Bernon rbernon at codeweavers.com
Tue Mar 16 14:28:09 CDT 2021


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---

Call of Duty Infinite Warfare for instance.

 dlls/ntdll/loader.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index a7e6d712df1..a982bf9bc2e 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -3221,7 +3221,8 @@ void WINAPI LdrShutdownThread(void)
     RtlReleasePebLock();
 
     RtlLeaveCriticalSection( &loader_section );
-    if (DbgUiGetThreadDebugObject()) NtClose( DbgUiGetThreadDebugObject() );
+    /* don't call DbgUiGetThreadDebugObject as some apps hook it and terminate if called */
+    if (NtCurrentTeb()->DbgSsReserved[1]) NtClose( NtCurrentTeb()->DbgSsReserved[1] );
     RtlFreeThreadActivationContextStack();
 }
 
-- 
2.30.2




More information about the wine-devel mailing list