From 48a87e699d21de85d87353a887e4d3508a8ec309 Mon Sep 17 00:00:00 2001 From: Bo Chen Date: Fri, 14 Apr 2023 15:41:22 -0700 Subject: [PATCH] Revert "vmm: config: Replace use of memfd_create with fd pointing to /dev/null" This reverts commit 46066d6ae1ef5dca1b80a4bf9650a4ffc1ff10f5. Signed-off-by: Bo Chen --- vmm/src/config.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/vmm/src/config.rs b/vmm/src/config.rs index f2476da84..fa89555b0 100644 --- a/vmm/src/config.rs +++ b/vmm/src/config.rs @@ -2138,8 +2138,6 @@ impl VmConfig { #[cfg(test)] mod tests { - use std::{fs::File, os::fd::AsRawFd}; - use super::*; use net_util::MacAddr; @@ -2353,6 +2351,17 @@ mod tests { Ok(()) } + fn memfd_create(name: &std::ffi::CStr, flags: u32) -> std::result::Result { + // SAFETY: FFI call with correct arguments + let res = unsafe { libc::syscall(libc::SYS_memfd_create, name.as_ptr(), flags) }; + + if res < 0 { + Err(std::io::Error::last_os_error()) + } else { + Ok(res as i32) + } + } + #[test] fn test_net_parsing() -> Result<()> { // mac address is random @@ -2431,10 +2440,10 @@ mod tests { } ); - // SAFETY: Safe as the file was just opened - let fd1 = unsafe { libc::dup(File::open("/dev/null").unwrap().as_raw_fd()) }; - // SAFETY: Safe as the file was just opened - let fd2 = unsafe { libc::dup(File::open("/dev/null").unwrap().as_raw_fd()) }; + let fd1 = + memfd_create(&std::ffi::CString::new("test_net_parsing_fd1").unwrap(), 0).unwrap(); + let fd2 = + memfd_create(&std::ffi::CString::new("test_net_parsing_fd2").unwrap(), 0).unwrap(); assert_eq!( &format!(