From ee1c4f7d1303c61725f73870f32afa1bc4f68854 Mon Sep 17 00:00:00 2001 From: Atin Mukherjee Date: Thu, 4 Jan 2018 22:07:54 +0530 Subject: [PATCH 181/201] glusterd: get-state memory leak fix >upstream mainline patch : https://review.gluster.org/#/c/19139/ Change-Id: Ic4fcf2087f295d3dade944efb8fd08f7e2d7d516 BUG: 1528733 Signed-off-by: Atin Mukherjee Reviewed-on: https://code.engineering.redhat.com/gerrit/132079 Tested-by: RHGS Build Bot Reviewed-by: Sunil Kumar Heggodu Gopala Acharya --- xlators/mgmt/glusterd/src/glusterd-handler.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index cf280a7..81926a8 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -5180,6 +5180,8 @@ glusterd_print_gsync_status_by_vol (FILE *fp, glusterd_volinfo_t *volinfo) if (ret) goto out; out: + if (gsync_rsp_dict) + dict_unref (gsync_rsp_dict); return ret; } @@ -5495,9 +5497,19 @@ glusterd_get_state (rpcsvc_request_t *req, dict_t *dict) if (odir[odirlen-1] != '/') strcat (odir, "/"); - gf_asprintf (&ofilepath, "%s%s", odir, filename); + ret = gf_asprintf (&ofilepath, "%s%s", odir, filename); + if (ret < 0) { + GF_FREE (odir); + GF_FREE (filename); + gf_msg (this->name, GF_LOG_ERROR, 0, GD_MSG_DICT_SET_FAILED, + "Unable to get the output path"); + ret = -1; + goto out; + } + GF_FREE (odir); + GF_FREE (filename); - ret = dict_set_str (dict, "ofilepath", ofilepath); + ret = dict_set_dynstr (dict, "ofilepath", ofilepath); if (ret) { gf_msg (this->name, GF_LOG_ERROR, 0, GD_MSG_DICT_SET_FAILED, "Unable to set output path"); -- 1.8.3.1