Calculate space left to silence coverity.
Type: fix
Fixes:
31f192434660
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: I9cd2e91ce74444e2625bf86721a8d3e44bf6afdd
struct termios tio;
int efd = -1;
char *cmd = 0;
struct termios tio;
int efd = -1;
char *cmd = 0;
+ unsigned long cmd_len = 0;
int do_quit = 0;
int is_interactive = 0;
int acked = 1; /* counts messages from VPP; starts at 1 */
int do_quit = 0;
int is_interactive = 0;
int acked = 1; /* counts messages from VPP; starts at 1 */
- cmd_len++; // account for \n in the end
+ cmd_len++; // account for 0 at end
cmd = malloc (cmd_len);
if (!cmd)
{
cmd = malloc (cmd_len);
if (!cmd)
{
goto done;
}
memset (cmd, 0, cmd_len);
goto done;
}
memset (cmd, 0, cmd_len);
+ unsigned long space_left = cmd_len - 1; // reserve space for 0 at end
- strncat (cmd, *argv++, cmd_len);
- strncat (cmd, " ", cmd_len);
+ strncat (cmd, *argv, space_left);
+ space_left -= strlen (*argv);
+ ++argv;
+ strncat (cmd, " ", space_left);
+ --space_left;
}
cmd[cmd_len - 2] = '\n';
cmd[cmd_len - 1] = 0;
}
cmd[cmd_len - 2] = '\n';
cmd[cmd_len - 1] = 0;