* 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.
This commit is contained in:
Mark Kettenis 2001-07-07 20:34:28 +00:00
parent 22af13de45
commit 43c6b44414
2 changed files with 10 additions and 2 deletions

View File

@ -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

View File

@ -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;