From e6cc9cc77c9dcefa3d52e0cd90db35435f0eb64e Mon Sep 17 00:00:00 2001
From: Ray Kinsella <ray.kinsella@intel.com>
Date: Sat, 20 May 2017 13:42:30 +0100
Subject: af_packet: fix coverity error

Fix coverity error associated with fd.

Change-Id: I0648aebaf356308bc03cc7217922479bfc4e22f7
Signed-off-by: Ray Kinsella <ray.kinsella@intel.com>
---
 src/vnet/devices/af_packet/device.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

(limited to 'src')

diff --git a/src/vnet/devices/af_packet/device.c b/src/vnet/devices/af_packet/device.c
index 4607d888ac9..e01b1c71b32 100644
--- a/src/vnet/devices/af_packet/device.c
+++ b/src/vnet/devices/af_packet/device.c
@@ -212,6 +212,13 @@ af_packet_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index,
   int rv, fd = socket (AF_UNIX, SOCK_DGRAM, 0);
   struct ifreq ifr;
 
+  if (0 > fd)
+    {
+      clib_unix_warning ("af_packet_%s could not open socket",
+			 apif->host_if_name);
+      return 0;
+    }
+
   /* if interface is a bridge ignore */
   if (apif->host_if_index < 0)
     goto error;			/* no error */
@@ -255,7 +262,8 @@ af_packet_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index,
   vnet_hw_interface_set_flags (vnm, hw_if_index, hw_flags);
 
 error:
-  close (fd);
+  if (0 <= fd)
+    close (fd);
 
   return 0;			/* no error */
 }
@@ -278,6 +286,13 @@ static clib_error_t *af_packet_set_mac_address_function
   int rv, fd = socket (AF_UNIX, SOCK_DGRAM, 0);
   struct ifreq ifr;
 
+  if (0 > fd)
+    {
+      clib_unix_warning ("af_packet_%s could not open socket",
+			 apif->host_if_name);
+      return 0;
+    }
+
   /* if interface is a bridge ignore */
   if (apif->host_if_index < 0)
     goto error;			/* no error */
@@ -303,7 +318,9 @@ static clib_error_t *af_packet_set_mac_address_function
     }
 
 error:
-  close (fd);
+
+  if (0 <= fd)
+    close (fd);
 
   return 0;			/* no error */
 }
-- 
cgit