Rebase against 9285aa5bb1338d8e2c1ac6b95974182b3f4881a9.

This commit is contained in:
Alistair Leslie-Hughes 2023-06-23 14:14:59 +10:00
parent d7080ec990
commit e930be3974
2 changed files with 19 additions and 19 deletions

View File

@ -1,4 +1,4 @@
From d87b3ff060a52b851aec1f66ff4b04fceebfc8ab Mon Sep 17 00:00:00 2001
From 4935d5a693f839352e94094c2bbfeb361baff009 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 4 Oct 2014 02:53:22 +0200
Subject: [PATCH] ntdll: Setup a temporary signal handler during process
@ -15,10 +15,10 @@ Subject: [PATCH] ntdll: Setup a temporary signal handler during process
7 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 4d95c29ab24..4406c1eb634 100644
index 3cde6b726a2..f4a20d052c8 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -2532,6 +2532,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
@@ -2398,6 +2398,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
#endif
virtual_init();
@ -28,10 +28,10 @@ index 4d95c29ab24..4406c1eb634 100644
#ifdef __APPLE__
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index fe51629838c..a39f158530a 100644
index 28cb2222809..b3b55a11e4f 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -1584,6 +1584,12 @@ void signal_init_process(void)
@@ -1566,6 +1566,12 @@ void signal_init_process(void)
exit(1);
}
@ -45,10 +45,10 @@ index fe51629838c..a39f158530a 100644
/***********************************************************************
* call_init_thunk
diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c
index 794aa7b2925..bf8e69f1661 100644
index f553aac1993..192baf23251 100644
--- a/dlls/ntdll/unix/signal_arm64.c
+++ b/dlls/ntdll/unix/signal_arm64.c
@@ -1381,6 +1381,12 @@ void signal_init_process(void)
@@ -1576,6 +1576,12 @@ void signal_init_process(void)
exit(1);
}
@ -62,7 +62,7 @@ index 794aa7b2925..bf8e69f1661 100644
/***********************************************************************
* call_init_thunk
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
index cc8605c2a4f..bfd0c3eb7ef 100644
index 11bdd9c1ea6..f688795ab91 100644
--- a/dlls/ntdll/unix/signal_i386.c
+++ b/dlls/ntdll/unix/signal_i386.c
@@ -1839,6 +1839,30 @@ static BOOL handle_syscall_trap( ucontext_t *sigcontext )
@ -96,7 +96,7 @@ index cc8605c2a4f..bfd0c3eb7ef 100644
/**********************************************************************
* segv_handler
*
@@ -2410,6 +2434,34 @@ void signal_init_process(void)
@@ -2408,6 +2432,34 @@ void signal_init_process(void)
exit(1);
}
@ -132,10 +132,10 @@ index cc8605c2a4f..bfd0c3eb7ef 100644
/***********************************************************************
* call_init_thunk
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index cc070dda5ae..3b0f671afe2 100644
index 8302976706c..a1d118b61da 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -2462,6 +2462,12 @@ void signal_init_process(void)
@@ -2640,6 +2640,12 @@ void signal_init_process(void)
exit(1);
}
@ -149,10 +149,10 @@ index cc070dda5ae..3b0f671afe2 100644
/***********************************************************************
* call_init_thunk
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index fa7b97117ff..12a484d079a 100644
index 16bf5cc2c78..c03d8675244 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -241,6 +241,7 @@ extern void signal_init_threading(void) DECLSPEC_HIDDEN;
@@ -268,6 +268,7 @@ extern void signal_init_threading(void) DECLSPEC_HIDDEN;
extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN;
extern void signal_free_thread( TEB *teb ) DECLSPEC_HIDDEN;
extern void signal_init_process(void) DECLSPEC_HIDDEN;
@ -161,18 +161,18 @@ index fa7b97117ff..12a484d079a 100644
BOOL suspend, TEB *teb ) DECLSPEC_HIDDEN;
extern void DECLSPEC_NORETURN signal_exit_thread( int status, void (*func)(int), TEB *teb ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 45089ae5845..0a9c4f2feb0 100644
index a06f675af7c..a7705e78fb4 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -3279,7 +3279,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
@@ -3703,7 +3703,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
}
#endif
mutex_lock( &virtual_mutex ); /* no need for signal masking inside signal handler */
vprot = get_page_vprot( page );
- if (!is_inside_signal_stack( stack ) && (vprot & VPROT_GUARD))
+ if (stack && !is_inside_signal_stack( stack ) && (vprot & VPROT_GUARD))
{
struct thread_stack_info stack_info;
if (!is_inside_thread_stack( page, &stack_info ))
--
2.38.1
2.40.1

View File

@ -1 +1 @@
81859c9af70aa5ed6da3060488d1815a3607c291
9285aa5bb1338d8e2c1ac6b95974182b3f4881a9