Skip to content

Commit 1c44c55

Browse files
committed
Use BorrowedFd instead of ManuallyDrop<File> for cloning fd
Signed-off-by: Jiahao XU <[email protected]>
1 parent 108d8a4 commit 1c44c55

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/unix.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -446,10 +446,10 @@ unsafe fn fd_check(fd: c_int, check_pipe: bool) -> Result<(), FromEnvErrorInner>
446446
}
447447

448448
fn clone_fd_and_set_cloexec(fd: c_int) -> Result<File, FromEnvErrorInner> {
449-
// Safety: File is wrapped in `ManuallyDrop` to prevent closing on drop
450-
// since we don't own the fd.
451-
mem::ManuallyDrop::new(unsafe { File::from_raw_fd(fd) })
452-
.try_clone()
449+
// Safety: fd is a valid fd dand it remains open until returns
450+
unsafe { BorrowedFd::borrow_raw(fd) }
451+
.try_clone_to_owned()
452+
.map(File::from)
453453
.map_err(|err| FromEnvErrorInner::CannotOpenFd(fd, err))
454454
}
455455

0 commit comments

Comments
 (0)