diff --git a/src/safeposix/syscalls/sys_calls.rs b/src/safeposix/syscalls/sys_calls.rs index 10be5122..1e78bbdc 100644 --- a/src/safeposix/syscalls/sys_calls.rs +++ b/src/safeposix/syscalls/sys_calls.rs @@ -773,10 +773,13 @@ impl Cage { return syscall_error(Errno::EINVAL, "sigkill", "Invalid cage id."); } + if let Some(cage) = interface::cagetable_getref_opt(cage_id as u64) { + let threadid = cage.main_threadid.load(interface::RustAtomicOrdering::Relaxed); + if threadid == 0 { return syscall_error(Errno::ESRCH, "kill", "Target cage does not exist"); } + interface::lind_threadkill( - cage.main_threadid - .load(interface::RustAtomicOrdering::Relaxed), + threadid, sig, ); return 0;