summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheyuanjie87 <[email protected]>2025-02-18 14:33:56 +0800
committerGitHub <[email protected]>2025-02-18 14:33:56 +0800
commit4b25b5ed9a0437cf2de9d46995f4d2d875cf3dd5 (patch)
tree1ed1df03001287a81ec16929ef0fef27db68502a
parent91beec4239cd03f039daa89d78d89fcabfce1357 (diff)
[lwp]检查killpg的signo参数的有效性 (#9981)
* [lwp]对检查killpg的signo参数的有效性
-rw-r--r--components/lwp/lwp_signal.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/components/lwp/lwp_signal.c b/components/lwp/lwp_signal.c
index 0bbb98c5d2..8c88e68151 100644
--- a/components/lwp/lwp_signal.c
+++ b/components/lwp/lwp_signal.c
@@ -27,6 +27,11 @@
#include "sys/signal.h"
#include "syscall_generic.h"
+rt_inline rt_err_t valid_signo_check(unsigned long sig)
+{
+ return sig <= _LWP_NSIG ? 0 : -RT_EINVAL;
+}
+
static lwp_siginfo_t siginfo_create(rt_thread_t current, int signo, int code, lwp_siginfo_ext_t ext)
{
lwp_siginfo_t siginfo;
@@ -1432,7 +1437,8 @@ rt_err_t lwp_pgrp_signal_kill(rt_processgroup_t pgrp, long signo, long code,
PGRP_ASSERT_LOCKED(pgrp);
- if (pgrp)
+ rc = valid_signo_check(signo);
+ if (pgrp && !rc)
{
rt_list_for_each_entry(lwp, &pgrp->process, pgrp_node)
{