Fixes memory leaks detected by Coverity. These are due to ephemeral
memory allocations not being freed when errors occur.

Coverity issue 127348: Resource leak
Coverity issue 127349: Resource leak

Fixes: e2aae1c1ced9 ("ethdev: remove name from extended statistic fetch")

Signed-off-by: Remy Horton <remy.horton at intel.com>
---
 app/test-pmd/config.c          | 3 +++
 examples/l2fwd-keepalive/shm.c | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 10f0a36..cb71c09 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -281,6 +281,7 @@ nic_xstats_display(portid_t port_id)
        if (cnt_xstats != rte_eth_xstats_get_names(
                        port_id, xstats_names, cnt_xstats)) {
                printf("Error: Cannot get xstats lookup\n");
+               free(xstats_names);
                return;
        }

@@ -293,6 +294,8 @@ nic_xstats_display(portid_t port_id)
        }
        if (cnt_xstats != rte_eth_xstats_get(port_id, xstats, cnt_xstats)) {
                printf("Error: Unable to get xstats\n");
+               free(xstats_names);
+               free(xstats);
                return;
        }

diff --git a/examples/l2fwd-keepalive/shm.c b/examples/l2fwd-keepalive/shm.c
index 66fc433..177aa5b 100644
--- a/examples/l2fwd-keepalive/shm.c
+++ b/examples/l2fwd-keepalive/shm.c
@@ -80,6 +80,8 @@ struct rte_keepalive_shm *rte_keepalive_shm_create(void)
                                RTE_LOG(INFO, EAL,
                                        "Failed to setup SHM semaphore (%s)\n",
                                        strerror(errno));
+                               munmap(ka_shm,
+                                       sizeof(struct rte_keepalive_shm));
                                return NULL;
                        }

-- 
2.5.5

Reply via email to