From 37eba0db4262eb5cb63be8911f1af845b845739b Mon Sep 17 00:00:00 2001 From: Steven Date: Sat, 2 Dec 2017 20:17:27 -0800 Subject: [PATCH 1/1] tap_v2: coverity strikes, again! fd is not close when IOCTL encounters an error which causes resource leak. The fix is to initialize fd to -1. At return, close fd if it has a valid value. Change-Id: I53c4f5c71ca0f556fb6586f5849e7cb622632d8f Signed-off-by: Steven --- src/vnet/devices/virtio/tap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/vnet/devices/virtio/tap.c b/src/vnet/devices/virtio/tap.c index cc28df3be7f..0eaaf2771cc 100644 --- a/src/vnet/devices/virtio/tap.c +++ b/src/vnet/devices/virtio/tap.c @@ -60,7 +60,7 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args) virtio_main_t *vim = &virtio_main; vnet_sw_interface_t *sw; vnet_hw_interface_t *hw; - int i, fd; + int i, fd = -1; struct ifreq ifr; size_t hdrsz; struct vhost_memory *vhost_mem = 0; @@ -205,7 +205,6 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args) _IOCTL (fd, SIOCGIFFLAGS, (void *) &ifr); ifr.ifr_flags |= IFF_UP | IFF_RUNNING; _IOCTL (fd, SIOCSIFFLAGS, (void *) &ifr); - close (fd); } if (!args->hw_addr_set) @@ -268,6 +267,8 @@ error: done: if (vhost_mem) clib_mem_free (vhost_mem); + if (fd != -1) + close (fd); } int -- 2.16.6