misc: vppctl fix heap-buffer-overflow & memleaks

1. Malloc may return not zero buffer, causing strncat buffer overflow
2. Malloc buffer not freed

Type: fix
Fixes: 31f1924346 ("misc: vppctl - remove the dependency on vppinfra")
Signed-off-by: Tianyu Li <tianyu.li@arm.com>
Change-Id: I5aebaccf3d0f8b7e3617068267f62cc2aa39d827
This commit is contained in:
Tianyu Li
2021-12-06 13:15:59 +08:00
committed by Damjan Marion
parent b8de7d43e4
commit 8c43d4dc13

View File

@@ -215,6 +215,13 @@ main (int argc, char *argv[])
{
cmd_len++; // account for \n in the end
cmd = malloc (cmd_len);
if (!cmd)
{
error = errno;
perror ("malloc failed");
goto done;
}
memset (cmd, 0, cmd_len);
while (argc--)
{
strncat (cmd, *argv++, cmd_len);
@@ -431,6 +438,7 @@ main (int argc, char *argv[])
close (sock_fd);
done:
free (cmd);
if (efd > -1)
close (efd);