Browse Source

[lwp]检查killpg的signo参数的有效性 (#9981)

* [lwp]对检查killpg的signo参数的有效性
heyuanjie87 2 months ago
parent
commit
4b25b5ed9a
1 changed files with 7 additions and 1 deletions
  1. 7 1
      components/lwp/lwp_signal.c

+ 7 - 1
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)
         {