diff options
author | Raghavendra Bhat <raghavendrabhat@gluster.com> | 2012-02-22 18:27:15 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2012-02-22 21:21:22 -0800 |
commit | 683ce1bca3b6c541e565eec014fa7cc3308957d8 (patch) | |
tree | ec726c410b727fb40a8e6777cacee2c7325cd3d2 /libglusterfs/src | |
parent | ca502ca780202c71623a34349c88d114ad58ec12 (diff) |
glusterfsd: unref the dict and use dict_set_dynstr to avoid memleak
Unref the new dict and use proper dict api (dict_set_dynstr) to save
data for displaying volume status information, which otherwise leads
to memory leak in the process.
Change-Id: Icb9ceb1a867c5b9759211a67027d983ab9b7e1c2
BUG: 796186
Signed-off-by: Raghavendra Bhat <raghavendrabhat@gluster.com>
Reviewed-on: http://review.gluster.com/2799
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'libglusterfs/src')
-rw-r--r-- | libglusterfs/src/inode.c | 2 | ||||
-rw-r--r-- | libglusterfs/src/stack.c | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c index 67752da716c..3fad499ebcb 100644 --- a/libglusterfs/src/inode.c +++ b/libglusterfs/src/inode.c @@ -1652,7 +1652,7 @@ inode_dump_to_dict (inode_t *inode, char *prefix, dict_t *dict) memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.gfid", prefix); - ret = dict_set_str (dict, key, gf_strdup (uuid_utoa (inode->gfid))); + ret = dict_set_dynstr (dict, key, gf_strdup (uuid_utoa (inode->gfid))); if (ret) goto out; diff --git a/libglusterfs/src/stack.c b/libglusterfs/src/stack.c index 29b44aedfac..787f9a318ca 100644 --- a/libglusterfs/src/stack.c +++ b/libglusterfs/src/stack.c @@ -186,7 +186,7 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.translator", prefix); - ret = dict_set_str (dict, key, gf_strdup (tmp_frame.this->name)); + ret = dict_set_dynstr (dict, key, gf_strdup (tmp_frame.this->name)); if (ret) return; @@ -199,7 +199,7 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, if (tmp_frame.parent) { memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.parent", prefix); - ret = dict_set_str (dict, key, + ret = dict_set_dynstr (dict, key, gf_strdup (tmp_frame.parent->this->name)); if (ret) return; @@ -208,7 +208,8 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, if (tmp_frame.wind_from) { memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.windfrom", prefix); - ret = dict_set_str (dict, key, gf_strdup (tmp_frame.wind_from)); + ret = dict_set_dynstr (dict, key, + gf_strdup (tmp_frame.wind_from)); if (ret) return; } @@ -216,7 +217,8 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, if (tmp_frame.wind_to) { memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.windto", prefix); - ret = dict_set_str (dict, key, gf_strdup (tmp_frame.wind_to)); + ret = dict_set_dynstr (dict, key, + gf_strdup (tmp_frame.wind_to)); if (ret) return; } @@ -224,7 +226,8 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, if (tmp_frame.unwind_from) { memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.unwindfrom", prefix); - ret = dict_set_str (dict, key, gf_strdup (tmp_frame.unwind_from)); + ret = dict_set_dynstr (dict, key, + gf_strdup (tmp_frame.unwind_from)); if (ret) return; } @@ -232,7 +235,8 @@ gf_proc_dump_call_frame_to_dict (call_frame_t *call_frame, if (tmp_frame.unwind_to) { memset (key, 0, sizeof (key)); snprintf (key, sizeof (key), "%s.unwind_to", prefix); - ret = dict_set_str (dict, key, gf_strdup (tmp_frame.unwind_to)); + ret = dict_set_dynstr (dict, key, + gf_strdup (tmp_frame.unwind_to)); } return; |