summaryrefslogtreecommitdiffstats
path: root/glusterfsd/src/glusterfsd.c
diff options
context:
space:
mode:
authorMohit Agrawal <moagrawal@redhat.com>2018-11-29 19:55:39 +0530
committerAtin Mukherjee <amukherj@redhat.com>2018-12-03 11:34:35 +0000
commit46c15ea8fa98bb3d92580b192f03863c2e2a2d9c (patch)
tree25462a497b273a0f963e2090adbbd928a4bb9bbc /glusterfsd/src/glusterfsd.c
parentf77fb6d568616592ab25501c402c140d15235ca9 (diff)
server: Resolve memory leak path in server_init
Problem: 1) server_init does not cleanup allocate resources while it is failed before return error 2) dict leak at the time of graph destroying Solution: 1) free resources in case of server_init is failed 2) Take dict_ref of graph xlator before destroying the graph to avoid leak Change-Id: I9e31e156b9ed6bebe622745a8be0e470774e3d15 fixes: bz#1654917 Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
Diffstat (limited to 'glusterfsd/src/glusterfsd.c')
-rw-r--r--glusterfsd/src/glusterfsd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index 771af423ea5..5bf0db0edfb 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -2618,6 +2618,10 @@ out:
xl = graph->first;
if ((ctx->active != graph) &&
(xl && !strcmp(xl->type, "protocol/server"))) {
+ /* Take dict ref for every graph xlator to avoid dict leak
+ at the time of graph destroying
+ */
+ gluster_graph_take_reference(graph->first);
glusterfs_graph_fini(graph);
glusterfs_graph_destroy(graph);
}