[dpdk-dev] [PATCH 12/18] drivers: net: sfc: fix another strncpy size and NUL

Andrew Rybchenko arybchenko at solarflare.com
Tue May 8 11:08:14 CEST 2018


On 05/08/2018 11:18 AM, Andy Green wrote:
> On 05/08/2018 03:36 PM, Andrew Rybchenko wrote:
>> (it looks like "another" is useless in the original subject)
>
> It captures my feeling at having to wade through making 18 fixes 
> before I could compile the project on current Fedora.

I see.

>> In general all patches should pass ./devtools/check-git-log.sh and 
>> ./devtools/checkpatches.sh
>> (which requires path to Linux kernel checkpatches.pl).
>
> Can you help me understand why adding CRLFs at 80 cols on the gcc 
> errors I pasted helps anything at all?  The patches actually fix 
> problems in the code.

Seeing GCC errors which patch fixes is useful to see. Yes, I agree that 
it is real problem in the code.

> If you don't care about Coverity, let me know and I will register this 
> project there and send you fixes when I have time.

dpdk is registered at Coverity and we get reports from time to time.

>
>> Andrew.
>>
>> [1] 
>> http://dpdk.org/doc/guides/contributing/patches.html#commit-messages-subject-line
>>
>> On 05/08/2018 07:30 AM, Andy Green wrote:
>>> ---
>>>   drivers/net/sfc/sfc_ethdev.c |    7 +++++--
>>>   1 file changed, 5 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/net/sfc/sfc_ethdev.c 
>>> b/drivers/net/sfc/sfc_ethdev.c
>>> index e9bb283e0..bd5f17f33 100644
>>> --- a/drivers/net/sfc/sfc_ethdev.c
>>> +++ b/drivers/net/sfc/sfc_ethdev.c
>>> @@ -662,10 +662,13 @@ sfc_xstats_get_names(struct rte_eth_dev *dev,
>>>         for (i = 0; i < EFX_MAC_NSTATS; ++i) {
>>>           if (EFX_MAC_STAT_SUPPORTED(port->mac_stats_mask, i)) {
>>> -            if (xstats_names != NULL && nstats < xstats_count)
>>> +            if (xstats_names != NULL && nstats < xstats_count) {
>>>                   strncpy(xstats_names[nstats].name,
>>>                       efx_mac_stat_name(sa->nic, i),
>>> -                    sizeof(xstats_names[0].name));
>>> +                    sizeof(xstats_names[0].name) - 1);
>>> +                xstats_names[0].name[
>>> +                    sizeof(xstats_names[0].name) - 1] = '\0';
>>> +            }
>>
>> In fact strlcpy() should be used.
> Fair enough.  Last time I looked it wasn't in glibc but seems it is now.

As far as I know it is not in glibc, but dpdk has internal fallback if 
the function
is not available from external libs.

Andrew.


More information about the dev mailing list