[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rpctrace / libpager / signal preemptor
From: |
Samuel Thibault |
Subject: |
Re: rpctrace / libpager / signal preemptor |
Date: |
Thu, 1 Dec 2016 10:12:21 +0100 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
Hello,
Brent W. Baccala, on Wed 30 Nov 2016 22:47:09 -1000, wrote:
> The patch works, but is incomplete. Samuel's test programs attempt to access
> unmapped memory addresses, which generate KERN_MEMORY_FAILURE, but ext2fs
> attempts to access mapped addresses back by a memory manager returning faults,
> which generates KERN_MEMORY_ERROR, so we also need this:
>
> --- sysdeps/mach/hurd/i386/exc2signal.c~ 2016-11-09 20:03:52.000000000 -1000
> +++ sysdeps/mach/hurd/i386/exc2signal.c 2016-11-30 01:54:02.000000000 -1000
> @@ -40,6 +40,7 @@
> {
> case KERN_INVALID_ADDRESS:
> case KERN_MEMORY_FAILURE:
> + case KERN_MEMORY_ERROR:
> *signo = SIGSEGV;
> detail->code = posix ? SEGV_MAPERR : detail->exc_subcode;
> break;
Err, I'm sorry, did you perhaps miss the fix I made after:
commit 406b031c996ec4cd8c76d251de8b7bf462d8b975
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date: Sun Nov 20 16:16:24 2016 +0100
Fix SIGBUS code
diff --git a/sysdeps/mach/hurd/i386/exc2signal.c
b/sysdeps/mach/hurd/i386/exc2signal.c
index b2606c4..feb9e2d 100644
--- a/sysdeps/mach/hurd/i386/exc2signal.c
+++ b/sysdeps/mach/hurd/i386/exc2signal.c
@@ -52,7 +52,7 @@ exception2signal (struct hurd_signal_detail *detail, int
*signo, int posix)
default:
*signo = SIGBUS;
- detail->code = 0;
+ detail->code = posix ? BUS_ADRERR : detail->exc_subcode;
break;
}
detail->error = detail->exc_code;
Which should be making the fix you propose obsolete, since all errors
will just map to SIGBUS with the proper address in code.
Samuel