From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Rybchenko Subject: Re: [PATCH 12/18] drivers: net: sfc: fix another strncpy size and NUL Date: Tue, 8 May 2018 12:08:14 +0300 Message-ID: References: <152575364588.56689.3300796065057551728.stgit@localhost.localdomain> <152575382842.56689.4589071928538784307.stgit@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit To: Andy Green , Return-path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id A53ED6CD0 for ; Tue, 8 May 2018 11:08:24 +0200 (CEST) In-Reply-To: Content-Language: en-GB List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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.