From ced9254d19647cfc54ec6156b3a41a0969ad7ea1 Mon Sep 17 00:00:00 2001 From: Sieger9303 <1517158051@qq.com> Date: Fri, 22 May 2026 11:09:11 +0800 Subject: [PATCH] fix: reject invalid Linux core ids --- src/linux.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/linux.rs b/src/linux.rs index 2abfae6..1c85b8f 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -4,9 +4,18 @@ use std::mem::{size_of, zeroed}; pub fn set_thread_affinity(core_ids: &[usize]) -> Result<()> { let mut set: cpu_set_t = unsafe { zeroed() }; - unsafe { - for core_id in core_ids { - CPU_SET(*core_id, &mut set); + + for &core_id in core_ids { + if core_id >= CPU_SETSIZE as usize { + return Err(From::from(format!( + "invalid core id {}: must be less than CPU_SETSIZE ({})", + core_id, + CPU_SETSIZE + ))); + } + + unsafe { + CPU_SET(core_id, &mut set); } }