[dpdk-dev] [PATCH v2 1/2] graph: fix memory leak
Min Hu (Connor)
humin29 at huawei.com
Thu May 6 09:16:26 CEST 2021
From: HongBo Zheng <zhenghongbo3 at huawei.com>
Fix function 'stats_mem_populate' return without
free dynamic memory referenced by 'stats'.
Fixes: af1ae8b6a32c ("graph: implement stats")
Cc: stable at dpdk.org
Signed-off-by: HongBo Zheng <zhenghongbo3 at huawei.com>
Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
---
lib/graph/graph_stats.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/graph/graph_stats.c b/lib/graph/graph_stats.c
index 125e08d..30e295d 100644
--- a/lib/graph/graph_stats.c
+++ b/lib/graph/graph_stats.c
@@ -165,6 +165,7 @@ stats_mem_populate(struct rte_graph_cluster_stats **stats_in,
stats = realloc(stats, stats->sz + stats->cluster_node_size);
if (stats == NULL)
SET_ERR_JMP(ENOMEM, err, "Realloc failed");
+ *stats_in = NULL;
/* Clear the new struct cluster_node area */
cluster = RTE_PTR_ADD(stats, stats->sz),
@@ -174,7 +175,7 @@ stats_mem_populate(struct rte_graph_cluster_stats **stats_in,
cluster->stat.hz = rte_get_timer_hz();
node = graph_node_id_to_ptr(graph, id);
if (node == NULL)
- SET_ERR_JMP(ENOENT, err, "Failed to find node %s in graph %s",
+ SET_ERR_JMP(ENOENT, free, "Failed to find node %s in graph %s",
graph_node->node->name, graph->name);
cluster->nodes[cluster->nb_nodes++] = node;
@@ -183,6 +184,8 @@ stats_mem_populate(struct rte_graph_cluster_stats **stats_in,
*stats_in = stats;
return 0;
+free:
+ free(stats);
err:
return -rte_errno;
}
--
2.7.4
More information about the dev
mailing list