From 1a5bf7b0adc203ff19d15d4be449359db5834116 Mon Sep 17 00:00:00 2001 From: Marsman1996 Date: Wed, 25 Dec 2024 14:37:40 +0800 Subject: [PATCH] Add overflow check for given sigaltstack addr and size --- kernel/src/syscall/sigaltstack.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/src/syscall/sigaltstack.rs b/kernel/src/syscall/sigaltstack.rs index cecf1b88..1a096821 100644 --- a/kernel/src/syscall/sigaltstack.rs +++ b/kernel/src/syscall/sigaltstack.rs @@ -106,6 +106,9 @@ impl TryFrom for SigStack { if stack.size < MINSTKSZ { return_errno_with_message!(Errno::ENOMEM, "stack size is less than MINSTKSZ"); } + if stack.sp.checked_add(stack.size).is_none() { + return_errno_with_message!(Errno::EINVAL, "overflow for given stack addr and size"); + } if flags.is_empty() { flags.insert(SigStackFlags::SS_ONSTACK);