71 lines
2.6 KiB
Diff
71 lines
2.6 KiB
Diff
From c3a4fd09f9a348e9b7394b2a9d498c815f1efaac Mon Sep 17 00:00:00 2001
|
||
From: David Marchand <david.marchand@redhat.com>
|
||
Date: Wed, 22 Mar 2023 18:06:27 +0100
|
||
Subject: [PATCH] net/mlx5: fix build with GCC 12 and ASan
|
||
MIME-Version: 1.0
|
||
Content-Type: text/plain; charset=UTF-8
|
||
Content-Transfer-Encoding: 8bit
|
||
|
||
[ upstream commit e17840756179410283ef03660578310874432f40 ]
|
||
|
||
Building with gcc 12 and ASan raises this warning:
|
||
|
||
../drivers/net/mlx5/mlx5_txpp.c: In function ‘mlx5_txpp_xstats_get_names’:
|
||
../drivers/net/mlx5/mlx5_txpp.c:1066:25: error: ‘strncpy’ specified bound
|
||
64 equals destination size [-Werror=stringop-truncation]
|
||
1066 | strncpy(xstats_names[i + n_used].name,
|
||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
1067 | mlx5_txpp_stat_names[i],
|
||
| ~~~~~~~~~~~~~~~~~~~~~~~~
|
||
1068 | RTE_ETH_XSTATS_NAME_SIZE);
|
||
| ~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
cc1: all warnings being treated as errors
|
||
|
||
Prefer strlcpy for xstats.
|
||
|
||
Fixes: 3b025c0ca425 ("net/mlx5: provide send scheduling error statistics")
|
||
|
||
Signed-off-by: David Marchand <david.marchand@redhat.com>
|
||
Acked-by: Raslan Darawsheh <rasland@nvidia.com>
|
||
---
|
||
drivers/net/mlx5/mlx5_stats.c | 3 +--
|
||
drivers/net/mlx5/mlx5_txpp.c | 4 +---
|
||
2 files changed, 2 insertions(+), 5 deletions(-)
|
||
|
||
diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c
|
||
index f64fa3587b..615e1d073d 100644
|
||
--- a/drivers/net/mlx5/mlx5_stats.c
|
||
+++ b/drivers/net/mlx5/mlx5_stats.c
|
||
@@ -288,10 +288,9 @@ mlx5_xstats_get_names(struct rte_eth_dev *dev,
|
||
|
||
if (n >= mlx5_xstats_n && xstats_names) {
|
||
for (i = 0; i != mlx5_xstats_n; ++i) {
|
||
- strncpy(xstats_names[i].name,
|
||
+ strlcpy(xstats_names[i].name,
|
||
xstats_ctrl->info[i].dpdk_name,
|
||
RTE_ETH_XSTATS_NAME_SIZE);
|
||
- xstats_names[i].name[RTE_ETH_XSTATS_NAME_SIZE - 1] = 0;
|
||
}
|
||
}
|
||
mlx5_xstats_n = mlx5_txpp_xstats_get_names(dev, xstats_names,
|
||
diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c
|
||
index af77e91e4c..83d17997d1 100644
|
||
--- a/drivers/net/mlx5/mlx5_txpp.c
|
||
+++ b/drivers/net/mlx5/mlx5_txpp.c
|
||
@@ -1064,11 +1064,9 @@ int mlx5_txpp_xstats_get_names(struct rte_eth_dev *dev __rte_unused,
|
||
|
||
if (n >= n_used + n_txpp && xstats_names) {
|
||
for (i = 0; i < n_txpp; ++i) {
|
||
- strncpy(xstats_names[i + n_used].name,
|
||
+ strlcpy(xstats_names[i + n_used].name,
|
||
mlx5_txpp_stat_names[i],
|
||
RTE_ETH_XSTATS_NAME_SIZE);
|
||
- xstats_names[i + n_used].name
|
||
- [RTE_ETH_XSTATS_NAME_SIZE - 1] = 0;
|
||
}
|
||
}
|
||
return n_used + n_txpp;
|
||
--
|
||
2.23.0
|
||
|