app/testpmd: fix copy of dynamic flag name

When working with testpmd and setting the dynflag name, we copy the
name given by the cmd to the dynflag name.

The issue is that the size of the dynflag name is smaller then the
string used by testpmd.

This commit solves this issue by checking that the length of the requested
flag name is not too long.

Coverity issue: 353610
Fixes: b57b66a97ebf ("app/testpmd: support mbuf dynamic flag")

Signed-off-by: Ori Kam <orika@mellanox.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
This commit is contained in:
Ori Kam 2020-02-04 13:39:46 +00:00 committed by Ferruh Yigit
parent 19d4c1aee8
commit bd164530ec

View File

@ -18866,14 +18866,18 @@ cmd_config_dynf_specific_parsed(void *parsed_result,
return;
flag = rte_mbuf_dynflag_lookup(res->name, NULL);
if (flag <= 0) {
strcpy(desc_flag.name, res->name);
if (strlcpy(desc_flag.name, res->name,
RTE_MBUF_DYN_NAMESIZE) >= RTE_MBUF_DYN_NAMESIZE) {
printf("Flag name too long\n");
return;
}
desc_flag.flags = 0;
flag = rte_mbuf_dynflag_register(&desc_flag);
if (flag < 0) {
printf("Can't register flag\n");
return;
}
strcpy(dynf_names[flag], res->name);
strcpy(dynf_names[flag], desc_flag.name);
}
old_port_flags = ports[res->port_id].mbuf_dynf;
if (!strcmp(res->value, "set")) {