net/sfc: make sure that stats name is nul-terminated

Fixes: 73280c1e4f ("net/sfc: support xstats retrieval by ID")
Fixes: 7b9891769f ("net/sfc: support extended statistics")
Cc: stable@dpdk.org

Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
This commit is contained in:
Andy Green 2018-05-14 13:00:47 +08:00 committed by Ferruh Yigit
parent f28742ba06
commit ed5b98483a

View File

@ -13,6 +13,7 @@
#include <rte_pci.h>
#include <rte_bus_pci.h>
#include <rte_errno.h>
#include <rte_string_fns.h>
#include "efx.h"
@ -648,7 +649,7 @@ 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)
strncpy(xstats_names[nstats].name,
strlcpy(xstats_names[nstats].name,
efx_mac_stat_name(sa->nic, i),
sizeof(xstats_names[0].name));
nstats++;
@ -726,9 +727,8 @@ sfc_xstats_get_names_by_id(struct rte_eth_dev *dev,
if ((ids == NULL) || (ids[nb_written] == nb_supported)) {
char *name = xstats_names[nb_written++].name;
strncpy(name, efx_mac_stat_name(sa->nic, i),
strlcpy(name, efx_mac_stat_name(sa->nic, i),
sizeof(xstats_names[0].name));
name[sizeof(xstats_names[0].name) - 1] = '\0';
}
++nb_supported;