diff --git a/kernel/src/ipc/semaphore/system_v/sem_set.rs b/kernel/src/ipc/semaphore/system_v/sem_set.rs index 3a6859611..fdbc4dfb4 100644 --- a/kernel/src/ipc/semaphore/system_v/sem_set.rs +++ b/kernel/src/ipc/semaphore/system_v/sem_set.rs @@ -235,6 +235,9 @@ pub fn create_sem_set_with_id( ) -> Result<()> { debug_assert!(nsems <= SEMMSL); debug_assert!(id > 0); + if id as usize > SEMMNI { + return_errno_with_message!(Errno::ENOENT, "id larger than SEMMNI"); + } ID_ALLOCATOR .get()