app/testpmd: fix string overrun in engines listing
authorTomasz Kulasek <tomaszx.kulasek@intel.com>
Mon, 11 Apr 2016 16:03:48 +0000 (18:03 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 27 Apr 2016 15:41:47 +0000 (17:41 +0200)
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>
app/test-pmd/config.c

index b1bbec6..1c552e4 100644 (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';
        }