| From 5bb0ed0a6164321e3f93a4b565bf743a72c9042b Mon Sep 17 00:00:00 2001 |
| From: Sameeh Jubran <sameehj@amazon.com> |
| Date: Wed, 1 May 2019 16:47:10 +0300 |
| Subject: net: ena: gcc 8: fix compilation warning |
| |
| [ Upstream commit f913308879bc6ae437ce64d878c7b05643ddea44 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c |
| index a6eacf2099c30..41c1c9acb3246 100644 |
| --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c |
| +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c |
| @@ -2292,7 +2292,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, |
| -- |
| 2.20.1 |
| |