From a8b6b03ae5a3fa1686f7ade75e9ec9ca106b1127 Mon Sep 17 00:00:00 2001 From: Ananthu C V Date: Fri, 22 Nov 2024 21:37:45 +0530 Subject: [PATCH] fix(test): IO safety violations while dropping the fd of open file --- tests/test_close_fds.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/test_close_fds.rs b/tests/test_close_fds.rs index b75832a..e04c4eb 100644 --- a/tests/test_close_fds.rs +++ b/tests/test_close_fds.rs @@ -55,15 +55,14 @@ fn run_basic_test( ), builder: close_fds::CloseFdsBuilder, ) { - let f1 = std::fs::File::open("/").unwrap(); - let f2 = std::fs::File::open("/").unwrap(); - let f3 = std::fs::File::open("/").unwrap(); - let fd1 = f1.as_raw_fd(); - let fd2 = f2.as_raw_fd(); - let fd3 = f3.as_raw_fd(); + let path = std::ffi::CString::new("/").unwrap(); - drop(f3); + let fd1 = unsafe { libc::open(path.as_ptr(), libc::O_RDONLY) }; + let fd2 = unsafe { libc::open(path.as_ptr(), libc::O_RDONLY) }; + let fd3 = unsafe { libc::open(path.as_ptr(), libc::O_RDONLY) }; + + unsafe { libc::close(fd3) }; assert!(is_fd_open(fd1)); assert!(is_fd_open(fd2));