From c9504d94479ef3ac0e10cd1db3e906c9075b17b7 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 20 May 2008 10:59:20 +0200 Subject: [PATCH] ntdll: Move signal unmasking to make sure injected code runs on the correct stack. --- dlls/ntdll/loader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index b0000b8704d..c05e01fcf22 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2360,6 +2360,8 @@ static NTSTATUS attach_process_dlls( void *wm ) { NTSTATUS status; + pthread_functions.sigprocmask( SIG_UNBLOCK, &server_block_set, NULL ); + RtlEnterCriticalSection( &loader_section ); if ((status = process_attach( wm, (LPVOID)1 )) != STATUS_SUCCESS) { @@ -2418,8 +2420,6 @@ void WINAPI LdrInitializeThunk( ULONG unknown1, ULONG unknown2, ULONG unknown3, if ((status = alloc_process_tls()) != STATUS_SUCCESS) goto error; if ((status = alloc_thread_tls()) != STATUS_SUCCESS) goto error; - pthread_functions.sigprocmask( SIG_UNBLOCK, &server_block_set, NULL ); - status = wine_call_on_stack( attach_process_dlls, wm, NtCurrentTeb()->Tib.StackBase ); if (status != STATUS_SUCCESS) goto error; -- 2.11.4.GIT