diff --git a/kernel/aster-nix/src/process/process/timer_manager.rs b/kernel/aster-nix/src/process/process/timer_manager.rs index fc0d0e519..0815a59d4 100644 --- a/kernel/aster-nix/src/process/process/timer_manager.rs +++ b/kernel/aster-nix/src/process/process/timer_manager.rs @@ -187,7 +187,12 @@ impl PosixTimerManager { /// Finds a POSIX timer by the input `timer_id`. pub fn find_posix_timer(&self, timer_id: usize) -> Option> { - self.posix_timers.lock()[timer_id].clone() + let timers = self.posix_timers.lock(); + if timer_id < timers.len() { + timers[timer_id].clone() + } else { + None + } } /// Removes the POSIX timer with the ID `timer_id`.