All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: dev@dpdk.org, stable@dpdk.org
Subject: Re: [PATCH] kni: fix build with gcc 8.1
Date: Wed, 20 Jun 2018 18:04:42 +0100	[thread overview]
Message-ID: <6bcc0a2c-9dbb-eefb-412c-10fea466e213@intel.com> (raw)
In-Reply-To: <90559d85-5fc2-8f77-3b2f-676c9d0b664a@intel.com>

On 6/20/2018 5:39 PM, Ferruh Yigit wrote:
> On 6/20/2018 12:35 AM, Stephen Hemminger wrote:
>> On Tue, 19 Jun 2018 13:08:55 +0100
>> Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>>
>>> Error observed when CONFIG_RTE_KNI_KMOD_ETHTOOL config option is
>>> enabled.
>>>
>>> build error:
>>> In function ‘strncpy’,
>>>     inlined from ‘igb_get_drvinfo’ at
>>>     .../dpdk/build/build/kernel/linux/kni/igb_ethtool.c:814:2:
>>>     .../include/linux/string.h:246:9: error: ‘__builtin_strncpy’ output
>>>     may be truncated copying 31 bytes from a string of length 42
>>>     [-Werror=stringop-truncation]
>>>       return __builtin_strncpy(p, q, size);
>>>                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>
>>> Fixed by reducing the adapter->fw_version size and adjusting strncpy
>>> limit size.
>>>
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>>>  kernel/linux/kni/ethtool/igb/igb.h         | 2 +-
>>>  kernel/linux/kni/ethtool/igb/igb_ethtool.c | 2 +-
>>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/kernel/linux/kni/ethtool/igb/igb.h b/kernel/linux/kni/ethtool/igb/igb.h
>>> index 8aa2a3088..5e798ae83 100644
>>> --- a/kernel/linux/kni/ethtool/igb/igb.h
>>> +++ b/kernel/linux/kni/ethtool/igb/igb.h
>>> @@ -592,7 +592,7 @@ struct igb_adapter {
>>>  	int int_mode;
>>>  	u32 rss_queues;
>>>  	u32 vmdq_pools;
>>> -	char fw_version[43];
>>> +	char fw_version[32];
>>
>> Use ETHTOOL_FWVERS_LEN?
> 
> Yes, that is what drvinfo->fw_version uses, and it seems it has been around
> enough to not cause any build issue, will use that one.

Ah so much fun, it has been updated to 43 by me in the past, to prevent another
warning [1] which another part of code has potential to write larger string to
fw_version.

Reducing value back to 32 may bring back that old warning ...

[1]
Fixes: c3698192940c ("kni: fix build with gcc 7.1")

> 
>>
>>>  	u32 wvbr;
>>>  	struct igb_mac_addr *mac_table;
>>>  #ifdef CONFIG_IGB_VMDQ_NETDEV
>>> diff --git a/kernel/linux/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>>> index 064528bcf..0b8b25ff1 100644
>>> --- a/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>>> +++ b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>>> @@ -812,7 +812,7 @@ static void igb_get_drvinfo(struct net_device *netdev,
>>>  	strncpy(drvinfo->version, igb_driver_version, sizeof(drvinfo->version) - 1);
>>>  
>>>  	strncpy(drvinfo->fw_version, adapter->fw_version,
>>> -		sizeof(drvinfo->fw_version) - 1);
>>> +		sizeof(drvinfo->fw_version));
>>
>> Why not:
>> 	strlcpy(drvinfo->fw_version, adapter->fw_version,
>> 		sizeof(drvinfo->fw_version));
> 
> Just to be cautious about changing API, to not have any problem with older
> version of kernels.
> But it seems strlcpy supported long enough to not cause an issue, I will use it.
> 

  reply	other threads:[~2018-06-20 17:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-19 12:08 [PATCH] kni: fix build with gcc 8.1 Ferruh Yigit
2018-06-19 23:35 ` Stephen Hemminger
2018-06-20 16:39   ` Ferruh Yigit
2018-06-20 17:04     ` Ferruh Yigit [this message]
2018-06-20  9:01 ` [dpdk-stable] " De Lara Guarch, Pablo
2018-06-20 16:40   ` Ferruh Yigit
2018-06-26  9:02 ` [PATCH v2] " Ferruh Yigit
2018-06-26  9:54   ` [dpdk-stable] " Thomas Monjalon
2018-06-26 11:38   ` [PATCH v3] " Ferruh Yigit
2018-06-26 13:43     ` De Lara Guarch, Pablo
2018-06-27 13:15       ` [dpdk-stable] " Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6bcc0a2c-9dbb-eefb-412c-10fea466e213@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=dev@dpdk.org \
    --cc=stable@dpdk.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.