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>
clib_memset (&ifr, 0, sizeof ifr);
clib_memset (&drvinfo, 0, sizeof drvinfo);
ifr.ifr_data = (char *) &drvinfo;
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)
{
drvinfo.cmd = ETHTOOL_GDRVINFO;
if (ioctl (fd, SIOCETHTOOL, &ifr) < 0)
{
continue;
clib_memset (&ifr, 0, sizeof (ifr));
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",
if (ioctl (fd, SIOCGIFFLAGS, &ifr) < 0)
{
error = clib_error_return_unix (0, "ioctl fetch intf %s flags",