From 0cf348d3f3288237855b7e05b0500c886ee98be0 Mon Sep 17 00:00:00 2001 From: Kemeng Shi Date: Sat, 8 May 2021 11:46:55 +0800 Subject: [PATCH 23/50] accept review advise Signed-off-by: Kemeng Shi --- inc/etmemd_inc/etmemd_engine.h | 1 + .../{etmem_thirdparty.h => etmemd_thirdparty_export.h} | 4 ++-- src/etmemd_src/etmemd_project.c | 9 ++++++++- src/etmemd_src/etmemd_thirdparty.c | 6 ++---- 4 files changed, 13 insertions(+), 7 deletions(-) rename inc/etmemd_inc/{etmem_thirdparty.h => etmemd_thirdparty_export.h} (93%) diff --git a/inc/etmemd_inc/etmemd_engine.h b/inc/etmemd_inc/etmemd_engine.h index b513ae8..0134d21 100644 --- a/inc/etmemd_inc/etmemd_engine.h +++ b/inc/etmemd_inc/etmemd_engine.h @@ -16,6 +16,7 @@ #ifndef ETMEMD_ENGINE_H #define ETMEMD_ENGINE_H +#include #include "etmemd.h" #include "etmemd_task.h" #include "etmemd_engine_exp.h" diff --git a/inc/etmemd_inc/etmem_thirdparty.h b/inc/etmemd_inc/etmemd_thirdparty_export.h similarity index 93% rename from inc/etmemd_inc/etmem_thirdparty.h rename to inc/etmemd_inc/etmemd_thirdparty_export.h index 0e128ce..9d145ce 100644 --- a/inc/etmemd_inc/etmem_thirdparty.h +++ b/inc/etmemd_inc/etmemd_thirdparty_export.h @@ -13,8 +13,8 @@ * Description: This is a header file of the function declaration for user defined thirdparty engine. ******************************************************************************/ -#ifndef ETMEM_THIRDPARTY_H -#define ETMEM_THIRDPARTY_H +#ifndef ETMEM_THIRDPARTY_EXPORT_H +#define ETMEM_THIRDPARTY_EXPORT_H #include "etmemd_project_exp.h" #include "etmemd_engine_exp.h" diff --git a/src/etmemd_src/etmemd_project.c b/src/etmemd_src/etmemd_project.c index 885c86e..deeaf5e 100644 --- a/src/etmemd_src/etmemd_project.c +++ b/src/etmemd_src/etmemd_project.c @@ -33,6 +33,8 @@ #define MAX_SLEEP_VALUE 1200 #define MAX_LOOP_VALUE 120 +#define MAX_OBJ_NAME_LEN 64 + static SLIST_HEAD(project_list, project) g_projects = SLIST_HEAD_INITIALIZER(g_projects); static struct project *get_proj_by_name(const char *name) @@ -95,7 +97,12 @@ static enum opt_result get_name_by_key(GKeyFile *config, const char *group_name, *name = g_key_file_get_string(config, group_name, key, NULL); if (*name == NULL) { etmemd_log(ETMEMD_LOG_ERR, "get value of key %s from group %s fail\n", key, group_name); - return OPT_INTER_ERR; + return OPT_INVAL; + } + if (strlen(*name) > MAX_OBJ_NAME_LEN) { + etmemd_log(ETMEMD_LOG_ERR, "name len should not be greater than %d\n", MAX_OBJ_NAME_LEN); + free(*name); + return OPT_INVAL; } return OPT_SUCCESS; diff --git a/src/etmemd_src/etmemd_thirdparty.c b/src/etmemd_src/etmemd_thirdparty.c index 1a05512..0fd2a70 100644 --- a/src/etmemd_src/etmemd_thirdparty.c +++ b/src/etmemd_src/etmemd_thirdparty.c @@ -85,14 +85,12 @@ static int set_engine_ops(struct engine *eng, struct thirdparty_params *params) char *err = NULL; handler = dlopen(params->libname, RTLD_NOW | RTLD_LOCAL); - if (handler == NULL) { - err = dlerror(); + err = dlerror(); + if (err != NULL && handler == NULL) { etmemd_log(ETMEMD_LOG_ERR, "load library %s fail with error: %s\n", params->libname, err); return -1; } - /* Clear error */ - dlerror(); ops = dlsym(handler, params->ops_name); err = dlerror(); if (err != NULL) { -- 2.27.0