From: Adrien Mazarguil Date: Tue, 10 Jan 2017 13:08:26 +0000 (+0100) Subject: app/testpmd: fix array bounds checks X-Git-Tag: spdx-start~5197 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=bd9e3bc20f38ad79daa2ead949db7655bbe1f182;p=dpdk.git app/testpmd: fix array bounds checks This commit addresses several obvious issues reported by Coverity with array bounds checks in functions related to the flow API. Coverity issue: 139596, 139597, 139598, 139599 Fixes: 938a184a1870 ("app/testpmd: implement basic support for flow API") Signed-off-by: Adrien Mazarguil --- diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 9716ce7083..e1af064af9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -884,7 +884,7 @@ store: do { struct rte_flow_item *dst = NULL; - if ((unsigned int)item->type > RTE_DIM(flow_item) || + if ((unsigned int)item->type >= RTE_DIM(flow_item) || !flow_item[item->type].name) goto notsup; if (pf) @@ -918,7 +918,7 @@ store: do { struct rte_flow_action *dst = NULL; - if ((unsigned int)action->type > RTE_DIM(flow_action) || + if ((unsigned int)action->type >= RTE_DIM(flow_action) || !flow_action[action->type].name) goto notsup; if (pf) @@ -977,7 +977,7 @@ port_flow_complain(struct rte_flow_error *error) char buf[32]; int err = rte_errno; - if ((unsigned int)error->type > RTE_DIM(errstrlist) || + if ((unsigned int)error->type >= RTE_DIM(errstrlist) || !errstrlist[error->type]) errstr = "unknown type"; else @@ -1146,7 +1146,7 @@ port_flow_query(portid_t port_id, uint32_t rule, printf("Flow rule #%u not found\n", rule); return -ENOENT; } - if ((unsigned int)action > RTE_DIM(flow_action) || + if ((unsigned int)action >= RTE_DIM(flow_action) || !flow_action[action].name) name = "unknown"; else