net: ena: gcc 8: fix compilation warning
authorSameeh Jubran <sameehj@amazon.com>
Wed, 1 May 2019 13:47:10 +0000 (16:47 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 4 May 2019 04:14:47 +0000 (00:14 -0400)
GCC 8 contains a number of new warnings as well as enhancements to existing
checkers. The warning - Wstringop-truncation - warns for calls to bounded
string manipulation functions such as strncat, strncpy, and stpncpy that
may either truncate the copied string or leave the destination unchanged.

In our case the destination string length (32 bytes) is much shorter than
the source string (64 bytes) which causes this warning to show up. In
general the destination has to be at least a byte larger than the length
of the source string with strncpy for this warning not to showup.

This can be easily fixed by using strlcpy instead which already does the
truncation to the string. Documentation for this function can be
found here:

https://elixir.bootlin.com/linux/latest/source/lib/string.c#L141

Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_netdev.c

index 0324415..bc5997a 100644 (file)
@@ -2298,7 +2298,7 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev,
        host_info->bdf = (pdev->bus->number << 8) | pdev->devfn;
        host_info->os_type = ENA_ADMIN_OS_LINUX;
        host_info->kernel_ver = LINUX_VERSION_CODE;
-       strncpy(host_info->kernel_ver_str, utsname()->version,
+       strlcpy(host_info->kernel_ver_str, utsname()->version,
                sizeof(host_info->kernel_ver_str) - 1);
        host_info->os_dist = 0;
        strncpy(host_info->os_dist_str, utsname()->release,