d1681e
From 6ba6401d26486920ed7c30025c1c3a941fb7bb00 Mon Sep 17 00:00:00 2001
d1681e
From: Sanju Rakonde <srakonde@redhat.com>
d1681e
Date: Mon, 21 May 2018 16:18:53 +0530
d1681e
Subject: [PATCH 286/305] glusterd: memory leak in geo-rep status
d1681e
d1681e
>Fixes: bz#1580352
d1681e
>Change-Id: I9648e73090f5a2edbac663a6fb49acdb702cdc49
d1681e
>Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
d1681e
d1681e
upstream patch: https://review.gluster.org/#/c/20046/
d1681e
d1681e
Change-Id: I9648e73090f5a2edbac663a6fb49acdb702cdc49
d1681e
BUG: 1575539
d1681e
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
d1681e
Reviewed-on: https://code.engineering.redhat.com/gerrit/139986
d1681e
Tested-by: RHGS Build Bot <nigelb@redhat.com>
d1681e
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
d1681e
---
d1681e
 xlators/mgmt/glusterd/src/glusterd-geo-rep.c | 8 ++++++--
d1681e
 1 file changed, 6 insertions(+), 2 deletions(-)
d1681e
d1681e
diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
d1681e
index a1251ae..eef347c 100644
d1681e
--- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
d1681e
+++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c
d1681e
@@ -512,8 +512,10 @@ glusterd_urltransform (runner_t *runner, char ***linearrp)
d1681e
                 }
d1681e
 
d1681e
                 if (fgets (line, 1024, runner_chio (runner, STDOUT_FILENO)) ==
d1681e
-                    NULL)
d1681e
+                    NULL) {
d1681e
+                        GF_FREE (line);
d1681e
                         break;
d1681e
+                }
d1681e
 
d1681e
                 len = strlen (line);
d1681e
                 if (len == 0 || line[len - 1] != '\n') {
d1681e
@@ -638,7 +640,7 @@ glusterd_get_slave (glusterd_volinfo_t *vol, const char *slaveurl, char **slavek
d1681e
                 if (strcmp (linearr[i], linearr[n - 1]) == 0)
d1681e
                         break;
d1681e
         }
d1681e
-        glusterd_urltransform_free (linearr, i);
d1681e
+        glusterd_urltransform_free (linearr, n);
d1681e
 
d1681e
         if (i < n - 1)
d1681e
                 *slavekey = dict_get_by_index (vol->gsync_slaves, i);
d1681e
@@ -5870,6 +5872,8 @@ glusterd_get_slave_info (char *slave,
d1681e
         }
d1681e
 
d1681e
 out:
d1681e
+        if (linearr)
d1681e
+                glusterd_urltransform_free (linearr, 1);
d1681e
         gf_msg_debug (this->name, 0, "Returning %d", ret);
d1681e
         return ret;
d1681e
 }
d1681e
-- 
d1681e
1.8.3.1
d1681e