From c930dfdc0887dc22d544d1d7db292ac3dcbdf129 Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Mon, 18 Jul 2022 16:19:28 +0200 Subject: [PATCH] Replace syscall::clone() with libc::fork(). --- Cargo.lock | 7 +++++++ Cargo.toml | 3 ++- src/main.rs | 6 ++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 15e3cb4027..cc256c11bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -12,9 +12,16 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" name = "ipcd" version = "0.1.0" dependencies = [ + "libc", "redox_syscall", ] +[[package]] +name = "libc" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" + [[package]] name = "redox_syscall" version = "0.2.16" diff --git a/Cargo.toml b/Cargo.toml index a85a34c1d4..e3a780c384 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,4 +3,5 @@ edition = "2018" name = "ipcd" version = "0.1.0" [dependencies] -redox_syscall = "0.2.12" +libc = "0.2" +redox_syscall = "0.2" diff --git a/src/main.rs b/src/main.rs index 345570830f..ba556599c1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,8 +20,10 @@ const TOKEN_CHAN: usize = 0; const TOKEN_SHM: usize = 1; fn main() -> Result<(), Box> { - if unsafe { syscall::clone(CloneFlags::empty()) }.map_err(from_syscall_error)? != 0 { - return Ok(()); + match unsafe { libc::fork() } { + 0 => (), + -1 => return Err(Box::new(io::Error::last_os_error())), + _child => return Ok(()), } // Create event listener for both files