[Ocfs2-tools-devel] [PATCH 2/3] o2cb_ctl: fix memory leak in o2cb_config.c

Joseph Qi joseph.qi at huawei.com
Thu Mar 10 00:56:06 PST 2016


From: Jun Piao <piaojun at huawei.com>

There are 2 memory leak problems in o2cb_config.c.

In o2cb_cluster_fill_node(), the memory allocated for 'name' should
be freed before the function return.

In o2cb_config_fill_cluster(), the 'count' should be freed after use.

Signed-off-by: Jun Piao <piaojun at huawei.com>
Signed-off-by: Joseph Qi <joseph.qi at huawei.com>
---
 o2cb_ctl/o2cb_config.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/o2cb_ctl/o2cb_config.c b/o2cb_ctl/o2cb_config.c
index 997dab3..17749f8 100644
--- a/o2cb_ctl/o2cb_config.c
+++ b/o2cb_ctl/o2cb_config.c
@@ -127,8 +127,10 @@ static gint o2cb_cluster_fill_node(O2CBCluster *cluster,
     /* NB: _add_node() gives us a node number, but we're going to
      * override it, because we know better. */
     node = o2cb_cluster_add_node(cluster, name);
-    if (!node)
-        return -ENOMEM;
+    if (!node) {
+        rc = -ENOMEM;
+        goto out_error;
+    }

     rc = -EINVAL;
     num_s = j_config_get_attribute(cfs, "number");
@@ -178,7 +180,7 @@ static gint o2cb_config_fill_cluster(O2CBConfig *config, JConfig *cf,
 {
     gint rc;
     gulong val;
-    gchar *count, *ptr, *hb_mode = NULL;
+    gchar *count = NULL, *ptr, *hb_mode = NULL;
     O2CBCluster *cluster;
     JIterator *iter;
     JConfigStanza *n_cfs;
@@ -261,6 +263,7 @@ static gint o2cb_config_fill_cluster(O2CBConfig *config, JConfig *cf,
 out_error:
     g_free(hb_mode);
     g_free(match.value);
+    g_free(count);

     return rc;
 }  /* o2cb_config_fill_cluster() */
-- 
1.8.4.3





More information about the Ocfs2-tools-devel mailing list