From 4b25b5ed9a0437cf2de9d46995f4d2d875cf3dd5 Mon Sep 17 00:00:00 2001 From: heyuanjie87 <943313837@qq.com> Date: Tue, 18 Feb 2025 14:33:56 +0800 Subject: [PATCH] =?UTF-8?q?[lwp]=E6=A3=80=E6=9F=A5killpg=E7=9A=84signo?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=9A=84=E6=9C=89=E6=95=88=E6=80=A7=20(#9981?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [lwp]对检查killpg的signo参数的有效性 --- components/lwp/lwp_signal.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) {