gcc-9 build fixes
v2 cover gcc-9 build fixes
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
v2
fix issues with wrong length in mbuf pool_ops
don't need memset in metrics names
lib/librte_mbuf/rte_mbuf_pool_ops.c | 4 ++-- lib/librte_metrics/rte_metrics.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-)
Signature · 1 line
2.16.2
PATCH v2 1/2 rte_mbuf: fix strncpy warnings
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.
--- lib/librte_mbuf/rte_mbuf_pool_ops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
lib/librte_mbuf/rte_mbuf_pool_ops.c +2 -2
@@ -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 ; }
Signature · 1 line
2.16.2
PATCH v2 2/2 rte_metrics: fix strncpy truncation warning
In reply to Stephen HemmingerFixes: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);
~~~~~~~~~~~~~~~~~~~~~~~~~--- lib/librte_metrics/rte_metrics.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
lib/librte_metrics/rte_metrics.c +5 -2
@@ -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);
Signature · 1 line
2.16.2