From: Reshma Pattan <reshma.pattan@intel.com>
Date: Tue, 4 Oct 2016 16:42:22 +0000 (+0100)
Subject: app/procinfo: free xstats memory upon failure
X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=4e1c139f79207ef1d67cf680970e801c902ae533;p=dpdk.git

app/procinfo: free xstats memory upon failure

Some of the failures cases inside the nic_xstats_display()
function doesn't free the allocated memory for the xstats and
their names, memory is freed now.

Fixes: e2aae1c1 ("ethdev: remove name from extended statistic fetch")
Fixes: 22561383 ("app: replace dump_cfg by proc_info")

Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Remy Horton <remy.horton@intel.com>
---

diff --git a/app/proc_info/main.c b/app/proc_info/main.c
index 8246fb2aec..2c56d10667 100644
--- a/app/proc_info/main.c
+++ b/app/proc_info/main.c
@@ -268,7 +268,7 @@ nic_xstats_display(uint8_t port_id)
 	if (len != rte_eth_xstats_get_names(
 			port_id, xstats_names, len)) {
 		printf("Cannot get xstat names\n");
-		return;
+		goto err;
 	}
 
 	printf("###### NIC extended statistics for port %-2d #########\n",
@@ -278,8 +278,7 @@ nic_xstats_display(uint8_t port_id)
 	ret = rte_eth_xstats_get(port_id, xstats, len);
 	if (ret < 0 || ret > len) {
 		printf("Cannot get xstats\n");
-		free(xstats);
-		return;
+		goto err;
 	}
 
 	for (i = 0; i < len; i++)
@@ -289,6 +288,7 @@ nic_xstats_display(uint8_t port_id)
 
 	printf("%s############################\n",
 			   nic_stats_border);
+err:
 	free(xstats);
 	free(xstats_names);
 }