Since the sigprocmask changes on 2026-04-10, I'm seeing a test failure
on native Windows (both mingw and MSVC):

test-sigaction.c:81: assertion 'sa.sa_handler == SIG_DFL' failed

It's a bug in the 'sigaction' module: It should never return a
'struct sigaction' with sa.sa_handler == sigaction_handler, since that
handler is a private detail of the module.

This patch fixes it.


2026-04-14  Bruno Haible  <[email protected]>

        sigaction: Fix test failure on native Windows.
        * lib/sigaction.c (sigaction): Hide the sigaction_handler from the
        caller.

diff --git a/lib/sigaction.c b/lib/sigaction.c
index 07efa9ea17..edd12e1e53 100644
--- a/lib/sigaction.c
+++ b/lib/sigaction.c
@@ -171,6 +171,10 @@ sigaction (int sig, const struct sigaction *restrict act,
           signal (sig, oact->sa_handler);
           oact->sa_flags = SA_RESETHAND | SA_NODEFER;
           sigemptyset (&oact->sa_mask);
+          /* The sigaction_handler is an internal detail.  It must not be
+             visible to the caller.  */
+          if (oact->sa_handler == sigaction_handler)
+            *oact = action_array[sig];
         }
     }
 




Reply via email to