Parcourir la source

fix omission that kept sa_restorer from being used

Rich Felker il y a 14 ans
Parent
commit
e1d8d25a50
2 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 1 0
      include/bits/signal.h
  2. 1 1
      src/signal/sigaction.c

+ 1 - 0
include/bits/signal.h

@@ -48,6 +48,7 @@ struct __siginfo
 #define SA_RESTART    0x10000000
 #define SA_NODEFER    0x40000000
 #define SA_RESETHAND  0x80000000
+#define SA_RESTORER   0x04000000
 
 #define SS_ONSTACK    1
 #define SS_DISABLE    2

+ 1 - 1
src/signal/sigaction.c

@@ -20,7 +20,7 @@ int __libc_sigaction(int sig, const struct sigaction *sa, struct sigaction *old)
 	long pksa=0, pkold=0;
 	if (sa) {
 		ksa.handler = sa->sa_handler;
-		ksa.flags = sa->sa_flags;
+		ksa.flags = sa->sa_flags | SA_RESTORER;
 		ksa.restorer = restorer;
 		ksa.mask = sa->sa_mask;
 		pksa = (long)&ksa;