DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes
@ 2018-03-29 17:05 Stephen Hemminger
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings Stephen Hemminger
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Stephen Hemminger @ 2018-03-29 17:05 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

This fixes some of the obvious warnings found building DPDK
with gcc-8. There still are some deeper issues in the rte_hash_table
code; leave the fix for that up to the maintainer.

Stephen Hemminger (2):
  rte_mbuf: fix strncpy warnings
  rte_metrics: fix strncpy truncation warning

v3
  missing SOB on 1st patch

v2
  fix issues with wrong length in mbuf pool_ops
  don't need memset in metrics names

Stephen Hemminger (2):
  rte_mbuf: fix strncpy warnings
  rte_metrics: fix strncpy truncation warning

 lib/librte_mbuf/rte_mbuf_pool_ops.c | 4 ++--
 lib/librte_metrics/rte_metrics.c    | 7 +++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

-- 
2.16.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings
  2018-03-29 17:05 [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Stephen Hemminger
@ 2018-03-29 17:05 ` Stephen Hemminger
  2018-04-04 15:35   ` Thomas Monjalon
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning Stephen Hemminger
  2018-04-03  9:23 ` [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Ferruh Yigit
  2 siblings, 1 reply; 7+ messages in thread
From: Stephen Hemminger @ 2018-03-29 17:05 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Gcc-8 discovers issue with platform_mempool_ops.
rte_mbuf_pool_ops.c:26:3: error: ‘strncpy’ output truncated before
  terminating nul copying as many bytes from a string as its length
  [-Werror=stringop-truncation]
  strncpy(mz->addr, ops_name,  strlen(ops_name));

Since the ops_name is already checked for size, using strncpy
here is unnecessary; just use strcpy.

Fixes: a3acc3144a76 ("mbuf: add pool ops selection functions")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/librte_mbuf/rte_mbuf_pool_ops.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf_pool_ops.c b/lib/librte_mbuf/rte_mbuf_pool_ops.c
index 48cc342002a5..a1d4699f67fe 100644
--- a/lib/librte_mbuf/rte_mbuf_pool_ops.c
+++ b/lib/librte_mbuf/rte_mbuf_pool_ops.c
@@ -23,7 +23,7 @@ rte_mbuf_set_platform_mempool_ops(const char *ops_name)
 			RTE_MEMPOOL_OPS_NAMESIZE, SOCKET_ID_ANY, 0);
 		if (mz == NULL)
 			return -rte_errno;
-		strncpy(mz->addr, ops_name, strlen(ops_name));
+		strcpy(mz->addr, ops_name);
 		return 0;
 	} else if (strcmp(mz->addr, ops_name) == 0) {
 		return 0;
@@ -62,7 +62,7 @@ rte_mbuf_set_user_mempool_ops(const char *ops_name)
 			return -rte_errno;
 	}
 
-	strncpy(mz->addr, ops_name, strlen(ops_name));
+	strcpy(mz->addr, ops_name);
 	return 0;
 
 }
-- 
2.16.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning
  2018-03-29 17:05 [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Stephen Hemminger
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings Stephen Hemminger
@ 2018-03-29 17:05 ` Stephen Hemminger
  2018-04-04 14:33   ` Thomas Monjalon
  2018-04-03  9:23 ` [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Ferruh Yigit
  2 siblings, 1 reply; 7+ messages in thread
From: Stephen Hemminger @ 2018-03-29 17:05 UTC (permalink / raw)
  To: dev; +Cc: Stephen Hemminger

Fixes:
librte_metrics/rte_metrics.c:218:4: error: ‘strncpy’ specified
 bound 64 equals destination size [-Werror=stringop-truncation]
    strncpy(names[idx_name].name,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     stats->metadata[idx_name].name,
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     RTE_METRICS_MAX_NAME_LEN);
     ~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/librte_metrics/rte_metrics.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/librte_metrics/rte_metrics.c b/lib/librte_metrics/rte_metrics.c
index 556ae1ba8b4d..e0f803ef0880 100644
--- a/lib/librte_metrics/rte_metrics.c
+++ b/lib/librte_metrics/rte_metrics.c
@@ -214,10 +214,13 @@ rte_metrics_get_names(struct rte_metric_name *names,
 			rte_spinlock_unlock(&stats->lock);
 			return return_value;
 		}
-		for (idx_name = 0; idx_name < stats->cnt_stats; idx_name++)
+
+		for (idx_name = 0; idx_name < stats->cnt_stats; idx_name++) {
 			strncpy(names[idx_name].name,
 				stats->metadata[idx_name].name,
-				RTE_METRICS_MAX_NAME_LEN);
+				RTE_METRICS_MAX_NAME_LEN - 1);
+			names[idx_name].name[RTE_METRICS_MAX_NAME_LEN - 1] = '\0';
+		}
 	}
 	return_value = stats->cnt_stats;
 	rte_spinlock_unlock(&stats->lock);
-- 
2.16.2

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes
  2018-03-29 17:05 [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Stephen Hemminger
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings Stephen Hemminger
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning Stephen Hemminger
@ 2018-04-03  9:23 ` Ferruh Yigit
  2018-04-03 15:10   ` Stephen Hemminger
  2 siblings, 1 reply; 7+ messages in thread
From: Ferruh Yigit @ 2018-04-03  9:23 UTC (permalink / raw)
  To: Stephen Hemminger, dev

On 3/29/2018 6:05 PM, Stephen Hemminger wrote:
> This fixes some of the obvious warnings found building DPDK
> with gcc-8. There still are some deeper issues in the rte_hash_table
> code; leave the fix for that up to the maintainer.
> 
> Stephen Hemminger (2):
>   rte_mbuf: fix strncpy warnings
>   rte_metrics: fix strncpy truncation warning
> 
> v3
>   missing SOB on 1st patch
> 
> v2
>   fix issues with wrong length in mbuf pool_ops
>   don't need memset in metrics names
> 
> Stephen Hemminger (2):
>   rte_mbuf: fix strncpy warnings
>   rte_metrics: fix strncpy truncation warning

I tried with gcc-8 [1] and getting a few more build errors similar to these
ones. Are these two files only build error you get?


[1]
gcc (GCC) 8.0.1 20180401 (experimental)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes
  2018-04-03  9:23 ` [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Ferruh Yigit
@ 2018-04-03 15:10   ` Stephen Hemminger
  0 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2018-04-03 15:10 UTC (permalink / raw)
  To: Ferruh Yigit; +Cc: dev

On Tue, 3 Apr 2018 10:23:43 +0100
Ferruh Yigit <ferruh.yigit@intel.com> wrote:

> On 3/29/2018 6:05 PM, Stephen Hemminger wrote:
> > This fixes some of the obvious warnings found building DPDK
> > with gcc-8. There still are some deeper issues in the rte_hash_table
> > code; leave the fix for that up to the maintainer.
> > 
> > Stephen Hemminger (2):
> >   rte_mbuf: fix strncpy warnings
> >   rte_metrics: fix strncpy truncation warning
> > 
> > v3
> >   missing SOB on 1st patch
> > 
> > v2
> >   fix issues with wrong length in mbuf pool_ops
> >   don't need memset in metrics names
> > 
> > Stephen Hemminger (2):
> >   rte_mbuf: fix strncpy warnings
> >   rte_metrics: fix strncpy truncation warning  
> 
> I tried with gcc-8 [1] and getting a few more build errors similar to these
> ones. Are these two files only build error you get?
> 
> 
> [1]
> gcc (GCC) 8.0.1 20180401 (experimental)
> 

This fixes the easy ones. The harder one is in cuckoo hash.

  CC rte_table_hash_cuckoo.o
lib/librte_table/rte_table_hash_cuckoo.c: In function ‘rte_table_hash_cuckoo_create’:
lib/librte_table/rte_table_hash_cuckoo.c:110:16: error: cast between incompatible function types from ‘rte_table_hash_op_hash’ {aka ‘long unsigned int (*)(void *, void *, unsigned int,  long unsigned int)’} to ‘uint32_t (*)(const void *, uint32_t,  uint32_t)’ {aka ‘unsigned int (*)(const void *, unsigned int,  unsigned int)’} [-Werror=cast-function-type]
   .hash_func = (rte_hash_function)(p->f_hash),
                ^
cc1: all warnings being treated as errors

Not sure what the right way to fix this one is. Hash table should not be defining
its own special hash function prototype. Changing to a common definition is
non-trivial and breaks ABI.  Casting seems wrong, error prone,
and a bad precedent in this case.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning Stephen Hemminger
@ 2018-04-04 14:33   ` Thomas Monjalon
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2018-04-04 14:33 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

29/03/2018 19:05, Stephen Hemminger:
> Fixes:
> librte_metrics/rte_metrics.c:218:4: error: ‘strncpy’ specified
>  bound 64 equals destination size [-Werror=stringop-truncation]
>     strncpy(names[idx_name].name,
>     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      stats->metadata[idx_name].name,
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      RTE_METRICS_MAX_NAME_LEN);
>      ~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

This one is fixed with strlcpy now.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings
  2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings Stephen Hemminger
@ 2018-04-04 15:35   ` Thomas Monjalon
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2018-04-04 15:35 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

29/03/2018 19:05, Stephen Hemminger:
> Gcc-8 discovers issue with platform_mempool_ops.
> rte_mbuf_pool_ops.c:26:3: error: ‘strncpy’ output truncated before
>   terminating nul copying as many bytes from a string as its length
>   [-Werror=stringop-truncation]
>   strncpy(mz->addr, ops_name,  strlen(ops_name));
> 
> Since the ops_name is already checked for size, using strncpy
> here is unnecessary; just use strcpy.
> 
> Fixes: a3acc3144a76 ("mbuf: add pool ops selection functions")
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Applied, thanks

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-04-04 15:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-29 17:05 [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Stephen Hemminger
2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 1/2] rte_mbuf: fix strncpy warnings Stephen Hemminger
2018-04-04 15:35   ` Thomas Monjalon
2018-03-29 17:05 ` [dpdk-dev] [PATCH v3 2/2] rte_metrics: fix strncpy truncation warning Stephen Hemminger
2018-04-04 14:33   ` Thomas Monjalon
2018-04-03  9:23 ` [dpdk-dev] [PATCH v3 0/2] gcc-8 build fixes Ferruh Yigit
2018-04-03 15:10   ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).