app/procinfo: free xstats memory upon failure
authorReshma Pattan <reshma.pattan@intel.com>
Tue, 4 Oct 2016 16:42:22 +0000 (17:42 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 12 Oct 2016 16:40:50 +0000 (18:40 +0200)
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>
app/proc_info/main.c

index 8246fb2..2c56d10 100644 (file)
@@ -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);
 }