mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-10 05:03:06 +03:00
* hurd/hurdsig.c (_hurd_internal_post_signal): When normal rules would
ignore a signal that came from a machine exception, treat it as a fatal core-dump signal instead. Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
2008-03-08 Roland McGrath <roland@frob.com>
|
2008-03-08 Roland McGrath <roland@frob.com>
|
||||||
|
|
||||||
|
* hurd/hurdsig.c (_hurd_internal_post_signal): When normal rules would
|
||||||
|
ignore a signal that came from a machine exception, treat it as a
|
||||||
|
fatal core-dump signal instead.
|
||||||
|
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
|
||||||
|
|
||||||
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
|
* sysdeps/mach/hurd/i386/trampoline.c (_hurd_setup_sighandler):
|
||||||
Clear DF bit in thread state's eflags.
|
Clear DF bit in thread state's eflags.
|
||||||
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
|
Reported by Samuel Thibault <samuel.thibault@ens-lyon.org>.
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991,92,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2005
|
/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001,2002,2005,2008
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@@ -743,6 +743,11 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ignore:
|
case ignore:
|
||||||
|
if (detail->exc)
|
||||||
|
/* Blocking or ignoring a machine exception is fatal.
|
||||||
|
Otherwise we could just spin on the faulting instruction. */
|
||||||
|
goto fatal;
|
||||||
|
|
||||||
/* Nobody cares about this signal. If there was a call to resume
|
/* Nobody cares about this signal. If there was a call to resume
|
||||||
above in SIGCONT processing and we've left a thread suspended,
|
above in SIGCONT processing and we've left a thread suspended,
|
||||||
now's the time to set it going. */
|
now's the time to set it going. */
|
||||||
@@ -759,6 +764,8 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss,
|
|||||||
Nothing to do but die; BSD gets SIGILL in this case. */
|
Nothing to do but die; BSD gets SIGILL in this case. */
|
||||||
detail->code = signo; /* XXX ? */
|
detail->code = signo; /* XXX ? */
|
||||||
signo = SIGILL;
|
signo = SIGILL;
|
||||||
|
|
||||||
|
fatal:
|
||||||
act = core;
|
act = core;
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user