diff options
Diffstat (limited to 'crates/runner/src/util/unix.rs')
-rw-r--r-- | crates/runner/src/util/unix.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/crates/runner/src/util/unix.rs b/crates/runner/src/util/unix.rs index 710138c..c3e9ddb 100644 --- a/crates/runner/src/util/unix.rs +++ b/crates/runner/src/util/unix.rs @@ -11,9 +11,8 @@ use common::error::*; use super::fs; pub fn set_blocking(fd: RawFd, blocking: bool) -> Result<()> { - let flags = unsafe { - OFlag::from_bits_unchecked(fcntl::fcntl(fd, FcntlArg::F_GETFL).context("fcntl(F_GETFL)")?) - }; + let flags = + OFlag::from_bits_retain(fcntl::fcntl(fd, FcntlArg::F_GETFL).context("fcntl(F_GETFL)")?); let new_flags = if blocking { flags & !OFlag::O_NONBLOCK @@ -29,9 +28,8 @@ pub fn set_blocking(fd: RawFd, blocking: bool) -> Result<()> { } pub fn set_cloexec(fd: RawFd, cloexec: bool) -> Result<()> { - let flags = unsafe { - FdFlag::from_bits_unchecked(fcntl::fcntl(fd, FcntlArg::F_GETFD).context("fcntl(F_GETFD)")?) - }; + let flags = + FdFlag::from_bits_retain(fcntl::fcntl(fd, FcntlArg::F_GETFD).context("fcntl(F_GETFD)")?); let new_flags = if cloexec { flags | FdFlag::FD_CLOEXEC |