diff options
Diffstat (limited to 'src/vlib/linux')
-rw-r--r-- | src/vlib/linux/pci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c index 11480ca081c..7cadb1378ec 100644 --- a/src/vlib/linux/pci.c +++ b/src/vlib/linux/pci.c @@ -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", |