af_packet: fix coverity error 16/6816/4
authorRay Kinsella <ray.kinsella@intel.com>
Sat, 20 May 2017 12:42:30 +0000 (13:42 +0100)
committerChris Luke <chris_luke@comcast.com>
Thu, 25 May 2017 02:39:00 +0000 (02:39 +0000)
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

index 4607d88..e01b1c7 100644 (file)
@@ -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 */
 }