summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-syncop.c
diff options
context:
space:
mode:
authorMohit Agrawal <moagrawal@redhat.com>2019-03-05 13:39:46 +0530
committerAtin Mukherjee <amukherj@redhat.com>2019-03-05 14:56:10 +0000
commit9374484917466dff4688d96ff7faa0de1c804a6c (patch)
treefa52f2e35a1e4addbf196539845c72d1e3d901ae /xlators/mgmt/glusterd/src/glusterd-syncop.c
parentf5c3b1727f55ffaa3dcdb3c3a09b968ebb45dbb2 (diff)
glusterd: glusterd memory leak while running "gluster v profile" in a loop
Problem: glusterd has memory leak while running "gluster v profile" in a loop Solution: Resolve leak code path to avoid leak Change-Id: Id608703ff6d0ad34ed8f921a5d25544e24cfadcd fixes: bz#1685414 Signed-off-by: Mohit Agrawal <moagrawal@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-syncop.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-syncop.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-syncop.c b/xlators/mgmt/glusterd/src/glusterd-syncop.c
index 4bf11e065e3..45b221c2e58 100644
--- a/xlators/mgmt/glusterd/src/glusterd-syncop.c
+++ b/xlators/mgmt/glusterd/src/glusterd-syncop.c
@@ -1653,6 +1653,7 @@ gd_brick_op_phase(glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
char **op_errstr)
{
glusterd_pending_node_t *pending_node = NULL;
+ glusterd_pending_node_t *tmp = NULL;
struct cds_list_head selected = {
0,
};
@@ -1690,7 +1691,7 @@ gd_brick_op_phase(glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
rsp_dict = NULL;
brick_count = 0;
- cds_list_for_each_entry(pending_node, &selected, list)
+ cds_list_for_each_entry_safe(pending_node, tmp, &selected, list)
{
rpc = glusterd_pending_node_get_rpc(pending_node);
if (!rpc) {
@@ -1747,6 +1748,7 @@ gd_brick_op_phase(glusterd_op_t op, dict_t *op_ctx, dict_t *req_dict,
brick_count++;
glusterd_pending_node_put_rpc(pending_node);
+ GF_FREE(pending_node);
}
pending_node = NULL;