Skip to content

Commit 6391461

Browse files
bors[bot]matu3ba
andauthored
Merge #1387
1387: fix(unsafe): remove unnecessary unsafe r=asomers a=matu3ba libc 0.2.82 exposes status signals with macros generating safe functions Co-authored-by: Jan Philipp Hafer <[email protected]>
2 parents 0bfa49a + 2ced7ea commit 6391461

File tree

1 file changed

+14
-24
lines changed

1 file changed

+14
-24
lines changed

src/sys/wait.rs

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
use cfg_if::cfg_if;
2-
use libc::{self, c_int};
3-
use crate::Result;
41
use crate::errno::Errno;
5-
use crate::unistd::Pid;
62
use crate::sys::signal::Signal;
3+
use crate::unistd::Pid;
4+
use crate::Result;
5+
use cfg_if::cfg_if;
6+
use libc::{self, c_int};
77
use std::convert::TryFrom;
88

99
libc_bitflags!(
@@ -108,68 +108,58 @@ impl WaitStatus {
108108
pub fn pid(&self) -> Option<Pid> {
109109
use self::WaitStatus::*;
110110
match *self {
111-
Exited(p, _) | Signaled(p, _, _) |
112-
Stopped(p, _) | Continued(p) => Some(p),
111+
Exited(p, _) | Signaled(p, _, _) | Stopped(p, _) | Continued(p) => Some(p),
113112
StillAlive => None,
114113
#[cfg(any(target_os = "android", target_os = "linux"))]
115114
PtraceEvent(p, _, _) | PtraceSyscall(p) => Some(p),
116115
}
117116
}
118117
}
119118

120-
#[allow(unused_unsafe)]
121119
fn exited(status: i32) -> bool {
122-
unsafe { libc::WIFEXITED(status) }
120+
libc::WIFEXITED(status)
123121
}
124122

125-
#[allow(unused_unsafe)]
126123
fn exit_status(status: i32) -> i32 {
127-
unsafe { libc::WEXITSTATUS(status) }
124+
libc::WEXITSTATUS(status)
128125
}
129126

130-
#[allow(unused_unsafe)]
131127
fn signaled(status: i32) -> bool {
132-
unsafe { libc::WIFSIGNALED(status) }
128+
libc::WIFSIGNALED(status)
133129
}
134130

135-
#[allow(unused_unsafe)]
136131
fn term_signal(status: i32) -> Result<Signal> {
137-
Signal::try_from(unsafe { libc::WTERMSIG(status) })
132+
Signal::try_from(libc::WTERMSIG(status))
138133
}
139134

140-
#[allow(unused_unsafe)]
141135
fn dumped_core(status: i32) -> bool {
142-
unsafe { libc::WCOREDUMP(status) }
136+
libc::WCOREDUMP(status)
143137
}
144138

145-
#[allow(unused_unsafe)]
146139
fn stopped(status: i32) -> bool {
147-
unsafe { libc::WIFSTOPPED(status) }
140+
libc::WIFSTOPPED(status)
148141
}
149142

150-
#[allow(unused_unsafe)]
151143
fn stop_signal(status: i32) -> Result<Signal> {
152-
Signal::try_from(unsafe { libc::WSTOPSIG(status) })
144+
Signal::try_from(libc::WSTOPSIG(status))
153145
}
154146

155147
#[cfg(any(target_os = "android", target_os = "linux"))]
156-
#[allow(unused_unsafe)]
157148
fn syscall_stop(status: i32) -> bool {
158149
// From ptrace(2), setting PTRACE_O_TRACESYSGOOD has the effect
159150
// of delivering SIGTRAP | 0x80 as the signal number for syscall
160151
// stops. This allows easily distinguishing syscall stops from
161152
// genuine SIGTRAP signals.
162-
unsafe { libc::WSTOPSIG(status) == libc::SIGTRAP | 0x80 }
153+
libc::WSTOPSIG(status) == libc::SIGTRAP | 0x80
163154
}
164155

165156
#[cfg(any(target_os = "android", target_os = "linux"))]
166157
fn stop_additional(status: i32) -> c_int {
167158
(status >> 16) as c_int
168159
}
169160

170-
#[allow(unused_unsafe)]
171161
fn continued(status: i32) -> bool {
172-
unsafe { libc::WIFCONTINUED(status) }
162+
libc::WIFCONTINUED(status)
173163
}
174164

175165
impl WaitStatus {

0 commit comments

Comments
 (0)