From bf0cdaea061f27938551a2f89ab89eda7afee853 Mon Sep 17 00:00:00 2001
From: zhongtao <zhongtao17@huawei.com>
Date: Sat, 13 May 2023 09:58:35 +0800
Subject: [PATCH 65/79] move signal_routine and g_log_fd to common and and some
 incoming parameter verification

Signed-off-by: zhongtao <zhongtao17@huawei.com>
---
 src/cmd/isulad-shim/common.c                    | 13 +++++++++++++
 src/cmd/isulad-shim/common.h                    |  1 +
 src/cmd/isulad-shim/main.c                      | 13 +------------
 src/daemon/modules/runtime/isula/isula_rt_ops.c |  5 +++++
 4 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/src/cmd/isulad-shim/common.c b/src/cmd/isulad-shim/common.c
index 18443385..3787cdfb 100644
--- a/src/cmd/isulad-shim/common.c
+++ b/src/cmd/isulad-shim/common.c
@@ -29,6 +29,19 @@
 #include <limits.h>
 #include <time.h>
 
+int g_log_fd = -1;
+
+void signal_routine(int sig)
+{
+    switch (sig) {
+        case SIGALRM:
+            write_message(g_log_fd, ERR_MSG, "runtime timeout");
+            exit(EXIT_FAILURE);
+        default:
+            break;
+    }
+}
+
 int set_fd_no_inherited(int fd)
 {
     int ret = SHIM_ERR;
diff --git a/src/cmd/isulad-shim/common.h b/src/cmd/isulad-shim/common.h
index b3f52dc3..8cef5de2 100644
--- a/src/cmd/isulad-shim/common.h
+++ b/src/cmd/isulad-shim/common.h
@@ -58,6 +58,7 @@ extern "C" {
 #define CONTAINER_ACTION_REBOOT 129
 #define CONTAINER_ACTION_SHUTDOWN 130
 
+void signal_routine(int sig);
 
 void util_usleep_nointerupt(unsigned long usec);
 /**
diff --git a/src/cmd/isulad-shim/main.c b/src/cmd/isulad-shim/main.c
index 0cccdf06..ed55805c 100644
--- a/src/cmd/isulad-shim/main.c
+++ b/src/cmd/isulad-shim/main.c
@@ -26,18 +26,7 @@
 #include "common.h"
 #include "process.h"
 
-int g_log_fd = -1;
-
-void signal_routine(int sig)
-{
-    switch (sig) {
-        case SIGALRM:
-            write_message(g_log_fd, ERR_MSG, "runtime timeout");
-            exit(EXIT_FAILURE);
-        default:
-            break;
-    }
-}
+extern int g_log_fd;
 
 static void set_timeout_exit(unsigned int timeout)
 {
diff --git a/src/daemon/modules/runtime/isula/isula_rt_ops.c b/src/daemon/modules/runtime/isula/isula_rt_ops.c
index 85a2fbc8..510bb17f 100644
--- a/src/daemon/modules/runtime/isula/isula_rt_ops.c
+++ b/src/daemon/modules/runtime/isula/isula_rt_ops.c
@@ -1572,6 +1572,11 @@ out:
 
 int rt_isula_kill(const char *id, const char *runtime, const rt_kill_params_t *params)
 {
+    if (id == NULL || runtime == NULL || params == NULL || params->pid < 0) {
+        ERROR("Invalid arguments not allowed");
+        return -1;
+    }
+
     if (util_process_alive(params->pid, params->start_time) == false) {
         if (params->signal == params->stop_signal || params->signal == SIGKILL) {
             WARN("Process %d is not alive", params->pid);
-- 
2.25.1

