Signed-off-by: Rémi Bernon rbernon@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(); }