pci: fix strncpy warnings

Doing strncpy(ifr.ifr_name, s, sizeof(ifr.ifr_name)) will cause
a warning about string truncation with GCC 8 (and other tools).
Fix this by using sizeof(ifr.ifr_name) - 1. Also, there is no
need to manually zero the end of the string since the whole
ifr structure is already zeroed by memset.

Change-Id: I9440d602ecdd9f8592b69bab2e77479146d00d76
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c
index b99f54f..ee3eebf 100644
--- a/src/vlib/linux/pci.c
+++ b/src/vlib/linux/pci.c
@@ -466,8 +466,8 @@
       clib_memset (&ifr, 0, sizeof ifr);
       clib_memset (&drvinfo, 0, sizeof drvinfo);
       ifr.ifr_data = (char *) &drvinfo;
-      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
-      ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
+      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
+
       drvinfo.cmd = ETHTOOL_GDRVINFO;
       if (ioctl (fd, SIOCETHTOOL, &ifr) < 0)
 	{
@@ -482,8 +482,8 @@
 	continue;
 
       clib_memset (&ifr, 0, sizeof (ifr));
-      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
-      ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
+      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name) - 1);
+
       if (ioctl (fd, SIOCGIFFLAGS, &ifr) < 0)
 	{
 	  error = clib_error_return_unix (0, "ioctl fetch intf %s flags",