From 597826a5fa4e307a23615a03031d2df0f739652f Mon Sep 17 00:00:00 2001 From: Mohit Agrawal Date: Tue, 20 Nov 2018 15:55:31 +0530 Subject: [PATCH 448/450] core: Resolve memory leak at the time of graph init Problem: Memory leak when graph init fails as during volfile exchange between brick and glusterd Solution: Fix the error code path in glusterfs_graph_init > Change-Id: If62bee61283fccb7fd60abc6ea217cfac12358fa > fixes: bz#1651431 > Signed-off-by: Mohit Agrawal > (cherry pick from commit 751b14f2bfd40e08ad395ccd98c6eb0a41ac4e91) > (Reviewed on upstream link https://review.gluster.org/#/c/glusterfs/+/21658/) Change-Id: I29fd290e71754214cc242eac0cc9461d18abec81 BUG: 1650138 Signed-off-by: Mohit Agrawal Reviewed-on: https://code.engineering.redhat.com/gerrit/156358 Tested-by: RHGS Build Bot Reviewed-by: Sunil Kumar Heggodu Gopala Acharya --- glusterfsd/src/glusterfsd.c | 11 +++++++---- xlators/mgmt/glusterd/src/glusterd.c | 4 ---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 6b7adc4..262a0c1 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -2383,11 +2383,14 @@ out: if (fp) fclose (fp); - if (ret && !ctx->active) { - glusterfs_graph_destroy (graph); + if (ret) { + if (graph && (ctx && (ctx->active != graph))) + glusterfs_graph_destroy (graph); /* there is some error in setting up the first graph itself */ - emancipate (ctx, ret); - cleanup_and_exit (ret); + if (!ctx->active) { + emancipate (ctx, ret); + cleanup_and_exit (ret); + } } return ret; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index 076019f..ca17526 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -1120,10 +1120,6 @@ glusterd_init_uds_listener (xlator_t *this) strncpy (sockfile, sock_data->data, UNIX_PATH_MAX); } - options = dict_new (); - if (!options) - goto out; - ret = rpcsvc_transport_unix_options_build (&options, sockfile); if (ret) goto out; -- 1.8.3.1