bug-hurd
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]