From c38907374aaee1e6867c767ae26a0e9d2f84269a Mon Sep 17 00:00:00 2001 From: Marsman1996 Date: Wed, 21 Aug 2024 13:51:43 +0800 Subject: [PATCH] Check the length of timers before access --- kernel/aster-nix/src/process/process/timer_manager.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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`.