app/testpmd: fix string overrun in engines listing

CID 13307 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)
fixed_size_dest: You might overrun the 128 byte fixed-size string fwd_modes
by copying fwd_eng->fwd_mode_name without checking the length.

Fixes: 769ce6b17835 ("app/testpmd: list forwarding engines")

Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
This commit is contained in:
Tomasz Kulasek 2016-04-11 18:03:48 +02:00 committed by Thomas Monjalon
parent 3e7bced6a6
commit 331c617bfb

View File

@ -1673,8 +1673,10 @@ list_pkt_forwarding_modes(void)
if (strlen (fwd_modes) == 0) {
while ((fwd_eng = fwd_engines[i++]) != NULL) {
strcat(fwd_modes, fwd_eng->fwd_mode_name);
strcat(fwd_modes, separator);
strncat(fwd_modes, fwd_eng->fwd_mode_name,
sizeof(fwd_modes) - strlen(fwd_modes) - 1);
strncat(fwd_modes, separator,
sizeof(fwd_modes) - strlen(fwd_modes) - 1);
}
fwd_modes[strlen(fwd_modes) - strlen(separator)] = '\0';
}