From 44192051dcc60a9ebd9803ed085bbdd9d0b53d8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20Ker=C3=A4nen?= Date: Fri, 2 Mar 2018 20:09:37 +0200 Subject: Change SigAction::flags to use from_bits_truncated On Linux, if the signal trampoline code is in the C library, sigaction sets the SA_RESTORER flag (0x04000000) in the sa_flags field of old sigaction (see sigreturn(2)). This is not intended for application use and is missing from SaFlags, therefore from_bits fails and unwrapping panics the user program. This fix just drops the bits that are not defined in SaFlags. --- src/sys/signal.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/sys/signal.rs b/src/sys/signal.rs index 10798ba1..875f5de6 100644 --- a/src/sys/signal.rs +++ b/src/sys/signal.rs @@ -389,7 +389,7 @@ impl SigAction { } pub fn flags(&self) -> SaFlags { - SaFlags::from_bits(self.sigaction.sa_flags).unwrap() + SaFlags::from_bits_truncate(self.sigaction.sa_flags) } pub fn mask(&self) -> SigSet { -- cgit v1.2.3