Fix 3 coverity warnings
1. api_format.c: init net_ns = 0 and remove its corresponding vec_add and
vec_free
2. netlink.c (reported in tap.c before the code was removed): resource leaked
due to fd is not close
3. tap.c: subtract 1 for size when calling strncpy to accommodate the
terminated NULL character
Change-Id: Iff4e66604862f0c06dac227b8cfd48d3979e41a5
Signed-off-by: Steven <sluong@cisco.com>
u8 random_mac = 1;
u8 name_set = 0;
u8 *tap_name;
u8 random_mac = 1;
u8 name_set = 0;
u8 *tap_name;
u8 net_ns_set = 0;
int ret;
int rx_ring_sz = 0, tx_ring_sz = 0;
u8 net_ns_set = 0;
int ret;
int rx_ring_sz = 0, tx_ring_sz = 0;
}
vec_add1 (tap_name, 0);
}
vec_add1 (tap_name, 0);
/* Construct the API message */
M (TAP_CREATE_V2, mp);
/* Construct the API message */
M (TAP_CREATE_V2, mp);
clib_memcpy (mp->net_ns, net_ns, vec_len (net_ns));
vec_free (tap_name);
clib_memcpy (mp->net_ns, net_ns, vec_len (net_ns));
vec_free (tap_name);
memset (&req, 0, sizeof (req));
if ((sock = socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)) == -1)
memset (&req, 0, sizeof (req));
if ((sock = socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE)) == -1)
- {
- err = clib_error_return_unix (0, "socket(AF_NETLINK)");
- goto error;
- }
+ return clib_error_return_unix (0, "socket(AF_NETLINK)");
ra.nl_family = AF_NETLINK;
ra.nl_pid = getpid ();
if ((bind (sock, (struct sockaddr *) &ra, sizeof (ra))) == -1)
ra.nl_family = AF_NETLINK;
ra.nl_pid = getpid ();
if ((bind (sock, (struct sockaddr *) &ra, sizeof (ra))) == -1)
- return clib_error_return_unix (0, "bind");
+ {
+ err = clib_error_return_unix (0, "bind");
+ goto error;
+ }
req.nh.nlmsg_len = NLMSG_LENGTH (sizeof (struct ifinfomsg));
req.nh.nlmsg_flags = NLM_F_REQUEST;
req.nh.nlmsg_len = NLMSG_LENGTH (sizeof (struct ifinfomsg));
req.nh.nlmsg_flags = NLM_F_REQUEST;
err = clib_error_return_unix (0, "send");
error:
err = clib_error_return_unix (0, "send");
error:
}
ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE | IFF_VNET_HDR;
}
ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_ONE_QUEUE | IFF_VNET_HDR;
- strncpy (ifr.ifr_ifrn.ifrn_name, (char *) args->name, IF_NAMESIZE);
+ strncpy (ifr.ifr_ifrn.ifrn_name, (char *) args->name, IF_NAMESIZE - 1);
_IOCTL (vif->tap_fd, TUNSETIFF, (void *) &ifr);
vif->ifindex = if_nametoindex ((char *) args->name);
_IOCTL (vif->tap_fd, TUNSETIFF, (void *) &ifr);
vif->ifindex = if_nametoindex ((char *) args->name);