From cd82f46b54e14898087ea1b051bce51eb50adef7 Mon Sep 17 00:00:00 2001 From: yangchen Date: Wed, 20 Nov 2024 14:17:09 +0800 Subject: [PATCH] fix free null pointer when no matching device is found --- src/lstack/core/lstack_cfg.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/lstack/core/lstack_cfg.c b/src/lstack/core/lstack_cfg.c index 2a3f1af..0ca838d 100644 --- a/src/lstack/core/lstack_cfg.c +++ b/src/lstack/core/lstack_cfg.c @@ -179,7 +179,7 @@ struct cfg_params *get_global_cfg_params(void) static int32_t str_to_eth_addr(const char *src, unsigned char *dst) { - if (strlen(src) > DEV_MAC_LEN) { + if (src == NULL || strlen(src) > DEV_MAC_LEN) { return -EINVAL; } @@ -273,7 +273,6 @@ static int32_t parse_mask_addr(void) } freeifaddrs(ifaddr); - freeifaddrs(ifa); } if (g_config_params.netmask.addr == INADDR_NONE) { @@ -315,7 +314,6 @@ static int32_t parse_host_addr(void) } freeifaddrs(ifaddr); - freeifaddrs(ifa); } if (g_config_params.host_addr.addr == INADDR_NONE) { @@ -404,7 +402,6 @@ static int32_t parse_devices(void) } freeifaddrs(ifaddr); - freeifaddrs(ifa); } /* add dev */ @@ -1048,7 +1045,7 @@ static int32_t parse_mbuf_count_per_conn(void) { int32_t ret; PARSE_ARG(g_config_params.mbuf_count_per_conn, "mbuf_count_per_conn", - MBUF_COUNT_PER_CONN, 1, INT32_MAX, ret); + MBUF_COUNT_PER_CONN, 1, INT32_MAX, ret); return ret; } @@ -1173,13 +1170,13 @@ static int32_t parse_unix_prefix(void) int32_t ret = 0; ret = memset_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), - 0, sizeof(g_config_params.unix_socket_filename)); + 0, sizeof(g_config_params.unix_socket_filename)); if (ret != EOK) { return ret; } ret = strncpy_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), - GAZELLE_RUN_DIR, strlen(GAZELLE_RUN_DIR) + 1); + GAZELLE_RUN_DIR, strlen(GAZELLE_RUN_DIR) + 1); if (ret != EOK) { return ret; } @@ -1200,10 +1197,10 @@ static int32_t parse_unix_prefix(void) if (g_config_params.use_ltran) { ret = strncat_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), - LTRAN_REG_SOCK_FILENAME, strlen(LTRAN_REG_SOCK_FILENAME) + 1); + LTRAN_REG_SOCK_FILENAME, strlen(LTRAN_REG_SOCK_FILENAME) + 1); } else { ret = strncat_s(g_config_params.unix_socket_filename, sizeof(g_config_params.unix_socket_filename), - LSTACK_DFX_SOCK_FILENAME, strlen(LSTACK_DFX_SOCK_FILENAME) + 1); + LSTACK_DFX_SOCK_FILENAME, strlen(LSTACK_DFX_SOCK_FILENAME) + 1); } if (ret != EOK) { -- 2.33.0