From 324c47ae4bd64bed134f75dc2a9ec93f8161ea26 Mon Sep 17 00:00:00 2001 From: jiangheng Date: Thu, 14 Jul 2022 22:23:51 +0800 Subject: [PATCH 12/19] add-port-mask-range-check --- src/ltran/ltran_param.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ltran/ltran_param.c b/src/ltran/ltran_param.c index aafbeee..cd65531 100644 --- a/src/ltran/ltran_param.c +++ b/src/ltran/ltran_param.c @@ -335,12 +335,21 @@ static int32_t parse_bond_ports(const config_t *config, const char *key, struct } ltran_config->bond.port_num = separate_str_to_array(port_str, ltran_config->bond.portmask, GAZELLE_MAX_BOND_NUM); - if (ltran_config->bond.port_num >= GAZELLE_MAX_BOND_NUM) { + if (ltran_config->bond.port_num > GAZELLE_MAX_BOND_NUM) { free(port_str); gazelle_set_errno(GAZELLE_ERANGE); return GAZELLE_ERR; } + for (uint32_t i = 0; i < ltran_config->bond.port_num; i++) { + if (ltran_config->bond.portmask[i] < GAZELLE_BOND_PORT_MASK_MIN || + ltran_config->bond.portmask[i] > GAZELLE_BOND_PORT_MASK_MAX) { + free(port_str); + gazelle_set_errno(GAZELLE_ERANGE); + return GAZELLE_ERR; + } + } + free(port_str); return GAZELLE_OK; } -- 2.23.0