Thu Apr 20 22:23:58 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
 	Point the return address for sigreturn's frame at a "hlt" insn so
 	it will definitely crash if sigreturn returns.

	HAVE_WEAK_SYMBOLS for doing weak_alias.
This commit is contained in:
Roland McGrath 1995-04-21 02:24:35 +00:00
parent 67be1ecfe5
commit 11d90def8c
2 changed files with 12 additions and 2 deletions

View File

@ -1,7 +1,13 @@
Thu Apr 20 22:23:58 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
Point the return address for sigreturn's frame at a "hlt" insn so
it will definitely crash if sigreturn returns.
Wed Apr 19 18:40:11 1995 Brendan Kehoe (brendan@zen.org)
* time/tzset.c (__tzname, __daylight, __timezone): Don't check
HAVE_WEAK_SYBMOLS for doing weak_alias.
HAVE_WEAK_SYMBOLS for doing weak_alias.
Wed Apr 19 18:12:56 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>

View File

@ -44,7 +44,7 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
volatile int rpc_wait,
struct machine_thread_all_state *state)
{
__label__ trampoline, rpc_wait_trampoline;
__label__ trampoline, rpc_wait_trampoline, firewall;
void *volatile sigsp;
struct sigcontext *scp;
struct
@ -143,6 +143,7 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
stackframe->sigcode = sigcode;
stackframe->scp = stackframe->return_scp = scp = &stackframe->ctx;
stackframe->sigreturn_addr = &__sigreturn;
stackframe->sigreturn_returns_here = &&firewall; /* Crash on return. */
/* Set up the sigcontext from the current state of the thread. */
@ -255,6 +256,9 @@ _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler,
__sigreturn (SCP); this call never returns. */
"ret");
firewall:
asm volatile ("hlt");
/* NOTREACHED */
return NULL;
}