diff --git a/src/libos/src/process/syscalls.rs b/src/libos/src/process/syscalls.rs index 06a5e4a7..4d005dd6 100644 --- a/src/libos/src/process/syscalls.rs +++ b/src/libos/src/process/syscalls.rs @@ -198,6 +198,9 @@ fn clone_file_actions_from_fa_safely(fa_ptr: *const SpawnFileActions) -> Result< let fa = unsafe { &*fa_ptr }; let sa_ptr = fa.actions; let sa_len = fa.used as usize; + if (sa_ptr == std::ptr::null() && sa_len == 0) { + return Ok(file_actions); + } check_array(sa_ptr, sa_len)?; unsafe { std::slice::from_raw_parts(sa_ptr, sa_len) } };