diff options
| author | heyuanjie87 <[email protected]> | 2025-02-18 14:33:56 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-02-18 14:33:56 +0800 |
| commit | 4b25b5ed9a0437cf2de9d46995f4d2d875cf3dd5 (patch) | |
| tree | 1ed1df03001287a81ec16929ef0fef27db68502a | |
| parent | 91beec4239cd03f039daa89d78d89fcabfce1357 (diff) | |
[lwp]检查killpg的signo参数的有效性 (#9981)
* [lwp]对检查killpg的signo参数的有效性
| -rw-r--r-- | components/lwp/lwp_signal.c | 8 |
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) { |
