diff options
author | Mark Kettenis <kettenis@gnu.org> | 2001-07-07 20:34:28 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2001-07-07 20:34:28 +0000 |
commit | 43c6b44414c908f19b56d3466a218e65640aac91 (patch) | |
tree | b30217e9ea20ce990787c009947563138b499235 | |
parent | 22af13de454d18449856c2334f77e5e6b4818fa7 (diff) | |
download | glibc-43c6b44414c908f19b56d3466a218e65640aac91.tar.gz glibc-43c6b44414c908f19b56d3466a218e65640aac91.tar.xz glibc-43c6b44414c908f19b56d3466a218e65640aac91.zip |
* sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): Generate SIGSEGV instead of SIGBUS for KERN_INVALID_ADDRESS and KERN_WRITE_PROTECTION_FAILURE.
2001-07-07 Mark Kettenis <kettenis@gnu.org> * sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): Generate SIGSEGV instead of SIGBUS for KERN_INVALID_ADDRESS and KERN_WRITE_PROTECTION_FAILURE.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/exc2signal.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 72ac0c549d..75089015ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2001-07-07 Mark Kettenis <kettenis@gnu.org> + + * sysdeps/mach/hurd/i386/exc2signal.c (_hurd_exception2signal): + Generate SIGSEGV instead of SIGBUS for KERN_INVALID_ADDRESS and + KERN_WRITE_PROTECTION_FAILURE. + 2001-07-07 Ulrich Drepper <drepper@redhat.com> * posix/regex.c: Limit string length printed in debug messages to diff --git a/sysdeps/mach/hurd/i386/exc2signal.c b/sysdeps/mach/hurd/i386/exc2signal.c index f1c5682ea1..a6bf750d78 100644 --- a/sysdeps/mach/hurd/i386/exc2signal.c +++ b/sysdeps/mach/hurd/i386/exc2signal.c @@ -1,5 +1,5 @@ /* Translate Mach exception codes into signal numbers. i386 version. - Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1991,1992,1994,1996,1997,2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -37,7 +37,9 @@ _hurd_exception2signal (struct hurd_signal_detail *detail, int *signo) break; case EXC_BAD_ACCESS: - if (detail->exc_code == KERN_PROTECTION_FAILURE) + if (detail->exc_code == KERN_INVALID_ADDRESS + || detail->exc_code == KERN_PROTECTION_FAILURE + || detail->exc_code == KERN_WRITE_PROTECTION_FAILURE) *signo = SIGSEGV; else *signo = SIGBUS; |