From ea1bc00c894a3717ea375f5ff40c3eb05447ae17 Mon Sep 17 00:00:00 2001 From: jikai Date: Sat, 13 Apr 2024 14:07:33 +0000 Subject: [PATCH 58/69] empty pointer check in lcr_rt_ops Signed-off-by: jikai --- .../modules/runtime/engines/lcr/lcr_rt_ops.c | 84 ++++++++++++++++++- 1 file changed, 81 insertions(+), 3 deletions(-) diff --git a/src/daemon/modules/runtime/engines/lcr/lcr_rt_ops.c b/src/daemon/modules/runtime/engines/lcr/lcr_rt_ops.c index 978da079..a89d0375 100644 --- a/src/daemon/modules/runtime/engines/lcr/lcr_rt_ops.c +++ b/src/daemon/modules/runtime/engines/lcr/lcr_rt_ops.c @@ -53,6 +53,11 @@ int rt_lcr_create(const char *name, const char *runtime, const rt_create_params_ char *runtime_root = NULL; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + if (conf_get_systemd_cgroup()) { ERROR("Systemd cgroup not supported for lcr runtime"); isulad_set_error_message("Systemd cgroup not supported for lcr runtime"); @@ -129,6 +134,11 @@ int rt_lcr_start(const char *name, const char *runtime, const rt_start_params_t struct engine_operation *engine_ops = NULL; engine_start_request_t request = { 0 }; + if (name == NULL || runtime == NULL || params == NULL || pid_info == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_start_op == NULL) { ERROR("Failed to get engine start operations"); @@ -183,6 +193,11 @@ int rt_lcr_clean_resource(const char *name, const char *runtime, const rt_clean_ int ret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_clean_op == NULL) { ERROR("Failed to get engine clean operations"); @@ -236,6 +251,15 @@ int rt_lcr_rm(const char *name, const char *runtime, const rt_rm_params_t *param int ret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + if (params->rootpath == NULL) { + ERROR("Missing root path"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_delete_op == NULL) { // if engine_ops is NULL, container root path may have been corrupted, try to remove by daemon @@ -284,6 +308,11 @@ int rt_lcr_status(const char *name, const char *runtime, const rt_status_params_ int nret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL || status == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_get_container_status_op == NULL) { ERROR("Failed to get engine status operations"); @@ -322,6 +351,11 @@ int rt_lcr_resources_stats(const char *name, const char *runtime, const rt_stats int nret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL || rs_stats == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_get_container_resources_stats_op == NULL) { ERROR("Failed to get engine stats operations"); @@ -451,6 +485,11 @@ int rt_lcr_exec(const char *id, const char *runtime, const rt_exec_params_t *par char *user = NULL; char *add_gids = NULL; + if (id == NULL || runtime == NULL || params == NULL || exit_code == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_exec_op == NULL) { DEBUG("Failed to get engine exec operations"); @@ -519,6 +558,11 @@ int rt_lcr_pause(const char *name, const char *runtime, const rt_pause_params_t int ret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_pause_op == NULL) { DEBUG("Failed to get engine pause operations"); @@ -549,6 +593,11 @@ int rt_lcr_resume(const char *name, const char *runtime, const rt_resume_params_ int ret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_resume_op == NULL) { DEBUG("Failed to get engine resume operations"); @@ -579,6 +628,11 @@ int rt_lcr_attach(const char *name, const char *runtime, const rt_attach_params_ int ret = 0; struct engine_operation *engine_ops = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Null argument"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_console_op == NULL) { DEBUG("Failed to get engine attach operations"); @@ -641,6 +695,11 @@ int rt_lcr_update(const char *id, const char *runtime, const rt_update_params_t struct engine_operation *engine_ops = NULL; struct engine_cgroup_resources cr = { 0 }; + if (id == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_update_op == NULL) { DEBUG("Failed to get engine update operations"); @@ -673,10 +732,9 @@ int rt_lcr_listpids(const char *name, const char *runtime, const rt_listpids_par int ret = 0; struct engine_operation *engine_ops = NULL; - if (out == NULL) { + if (name == NULL || runtime == NULL || params == NULL || out == NULL) { ERROR("Invalid arguments"); - ret = -1; - goto out; + return -1; } engine_ops = engines_get_handler(runtime); @@ -709,6 +767,11 @@ int rt_lcr_resize(const char *id, const char *runtime, const rt_resize_params_t int ret = 0; struct engine_operation *engine_ops = NULL; + if (id == NULL || runtime == NULL || params == NULL) { + ERROR("Invalid arguments"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_resize_op == NULL) { DEBUG("Failed to get engine resume operations"); @@ -740,6 +803,11 @@ int rt_lcr_exec_resize(const char *id, const char *runtime, const rt_exec_resize int ret = 0; struct engine_operation *engine_ops = NULL; + if (id == NULL || runtime == NULL || params == NULL) { + ERROR("Nullptr arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_resize_op == NULL) { DEBUG("Failed to get engine resume operations"); @@ -767,6 +835,11 @@ out: int rt_lcr_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); @@ -798,6 +871,11 @@ int rt_lcr_rebuild_config(const char *name, const char *runtime, const rt_rebuil oci_runtime_spec *oci_spec = NULL; __isula_auto_free parser_error err = NULL; + if (name == NULL || runtime == NULL || params == NULL) { + ERROR("Invalid arguments not allowed"); + return -1; + } + engine_ops = engines_get_handler(runtime); if (engine_ops == NULL || engine_ops->engine_create_op == NULL) { ERROR("Failed to get engine rebuild config operations"); -- 2.34.1