gcc8 and Wstringop-truncation
[vpp.git] / src / vlib / linux / pci.c
index 11480ca..7cadb13 100644 (file)
@@ -442,7 +442,8 @@ vlib_pci_bind_to_uio (vlib_pci_addr_t * addr, char *uio_drv_name)
       memset (&ifr, 0, sizeof ifr);
       memset (&drvinfo, 0, sizeof drvinfo);
       ifr.ifr_data = (char *) &drvinfo;
-      strncpy (ifr.ifr_name, e->d_name, IFNAMSIZ - 1);
+      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
+      ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
       drvinfo.cmd = ETHTOOL_GDRVINFO;
       if (ioctl (fd, SIOCETHTOOL, &ifr) < 0)
        {
@@ -457,7 +458,8 @@ vlib_pci_bind_to_uio (vlib_pci_addr_t * addr, char *uio_drv_name)
        continue;
 
       memset (&ifr, 0, sizeof (ifr));
-      strncpy (ifr.ifr_name, e->d_name, IFNAMSIZ - 1);
+      strncpy (ifr.ifr_name, e->d_name, sizeof (ifr.ifr_name));
+      ifr.ifr_name[ARRAY_LEN (ifr.ifr_name) - 1] = '\0';
       if (ioctl (fd, SIOCGIFFLAGS, &ifr) < 0)
        {
          error = clib_error_return_unix (0, "ioctl fetch intf %s flags",