bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH glibc 04/34] hurd: Make exception subcode a long


From: Sergey Bugaev
Subject: [RFC PATCH glibc 04/34] hurd: Make exception subcode a long
Date: Sun, 19 Mar 2023 18:09:47 +0300

On EXC_BAD_ACCESS, exception subcode is used to pass the faulting memory
address, so it needs to be (at least) pointer-sized. Thus, make it into
a long. This matches the corresponding change in GNU Mach.
---
 hurd/catch-exc.c   | 2 +-
 hurd/hurd/signal.h | 5 +++--
 hurd/hurdfault.c   | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c
index e8a9c798..5ee2233a 100644
--- a/hurd/catch-exc.c
+++ b/hurd/catch-exc.c
@@ -31,7 +31,7 @@ _S_catch_exception_raise (mach_port_t port,
                          mach_msg_type_number_t codeCnt
 #else                          /* Vanilla Mach 3.0 interface.  */
                          integer_t exception,
-                         integer_t code, integer_t subcode
+                         integer_t code, long_integer_t subcode
 #endif
                          )
 {
diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
index 4e9f79b1..c33f974b 100644
--- a/hurd/hurd/signal.h
+++ b/hurd/hurd/signal.h
@@ -51,9 +51,10 @@ struct hurd_signal_preemptor;        /* <hurd/sigpreempt.h> 
*/
 struct hurd_signal_detail
   {
     /* Codes from origination Mach exception_raise message.  */
-    integer_t exc, exc_code, exc_subcode;
+    integer_t exc, exc_code;
+    long_integer_t exc_subcode;
     /* Sigcode as passed or computed from exception codes.  */
-    integer_t code;
+    long_integer_t code;
     /* Error code as passed or extracted from exception codes.  */
     error_t error;
   };
diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c
index 069c1c26..a81e7280 100644
--- a/hurd/hurdfault.c
+++ b/hurd/hurdfault.c
@@ -45,7 +45,7 @@ _hurdsig_fault_catch_exception_raise (mach_port_t port,
                                      mach_msg_type_number_t codeCnt
 #else                          /* Vanilla Mach 3.0 interface.  */
                                      integer_t exception,
-                                     integer_t code, integer_t subcode
+                                     integer_t code, long_integer_t subcode
 #endif
                                      )
 {
-- 
2.39.2




reply via email to

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