X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=VNFs%2FDPPD-PROX%2Fparse_utils.c;h=786c21416b8e81e8bd3c7552d95b5674ca5ce51a;hb=0d4878ce42cf3b5e047602fe6a04e76cfa5239c7;hp=52337ffb1d7b311c5b2cab108e7e915d0cbaf0aa;hpb=83199af0ffc12fcb0961debbbc8e83957d2d115b;p=samplevnf.git diff --git a/VNFs/DPPD-PROX/parse_utils.c b/VNFs/DPPD-PROX/parse_utils.c index 52337ffb..786c2141 100644 --- a/VNFs/DPPD-PROX/parse_utils.c +++ b/VNFs/DPPD-PROX/parse_utils.c @@ -34,6 +34,7 @@ #include "log.h" #include "prox_lua.h" #include "prox_lua_types.h" +#include "prox_compat.h" #define MAX_NB_PORT_NAMES PROX_MAX_PORTS #define MAX_LEN_PORT_NAME 24 @@ -117,7 +118,7 @@ int parse_single_var(char *val, size_t len, const char *name) match->name, match->val); return -1; } - strncpy(val, match->val, len); + prox_strncpy(val, match->val, len); return 0; } else { @@ -195,7 +196,7 @@ int parse_vars(char *val, size_t len, const char *name) break; } } - strncpy(val, result, len); + prox_strncpy(val, result, len); return 0; } @@ -430,6 +431,8 @@ int parse_mac(struct ether_addr *ether_addr, const char *str2) return -1; uint8_t ret = rte_strsplit(str, strlen(str), addr_parts, 7, ':'); + if (ret != 6) + ret = rte_strsplit(str, strlen(str), addr_parts, 7, ' '); if (ret != 6) { set_errf("Invalid MAC address format"); @@ -895,7 +898,7 @@ int parse_list_set(uint32_t *list, const char *str2, uint32_t max_list) effective_core = cur_core; if (list_count >= max_list) { - set_errf("Too many elements in list\n"); + set_errf("Too many elements in list"); return -1; } list[list_count++] = effective_core; @@ -920,10 +923,12 @@ int parse_kmg(uint32_t* val, const char *str2) if (*val >> 22) return -2; *val <<= 10; + // __attribute__ ((fallthrough)); case 'M': if (*val >> 22) return -2; *val <<= 10; + // __attribute__ ((fallthrough)); case 'K': if (*val >> 22) return -2; @@ -1046,7 +1051,7 @@ int parse_str(char* dst, const char *str2, size_t max_len) return -2; } - strncpy(dst, str, max_len); + prox_strncpy(dst, str, max_len); return 0; } @@ -1120,7 +1125,7 @@ int parse_remap(uint8_t *mapping, const char *str) set_errf("String too long (max supported: %d)", MAX_STR_LEN_PROC); return -2; } - strncpy(str_cpy, str, MAX_STR_LEN_PROC); + prox_strncpy(str_cpy, str, MAX_STR_LEN_PROC); ret = rte_strsplit(str_cpy, strlen(str_cpy), elements, PROX_MAX_PORTS + 1, ','); if (ret <= 0) { @@ -1177,7 +1182,7 @@ int add_port_name(uint32_t val, const char *str2) } pn = &port_names[nb_port_names]; - strncpy(pn->name, str, sizeof(pn->name)); + prox_strncpy(pn->name, str, sizeof(pn->name)); pn->id = val; ++nb_port_names; @@ -1195,7 +1200,7 @@ int set_self_var(const char *str) struct var *v = &vars[nb_vars]; - strncpy(v->name, "$self", strlen("$self")); + prox_strncpy(v->name, "$self", strlen("$self") + 1); sprintf(v->val, "%s", str); nb_vars++; @@ -1243,8 +1248,8 @@ int add_var(const char* name, const char *str2, uint8_t cli) v = &vars[nb_vars]; PROX_PANIC(strlen(name) > sizeof(v->name), "\tUnable to parse var %s: too long\n", name); PROX_PANIC(strlen(str) > sizeof(v->val), "\tUnable to parse var %s=%s: too long\n", name,str); - strncpy(v->name, name, sizeof(v->name)); - strncpy(v->val, str, sizeof(v->val)); + prox_strncpy(v->name, name, sizeof(v->name)); + prox_strncpy(v->val, str, sizeof(v->val)); v->cli = cli; ++nb_vars;