On 2014/8/8 17:36, Alex Bennée wrote:

zhanghailiang writes:

Reviewed-by: Gonglei<arei.gong...@huawei.com>
Signed-off-by: zhanghailiang<zhang.zhanghaili...@huawei.com>
---
  util/path.c | 9 ++++++---
  1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/util/path.c b/util/path.c
index 5c59d9f..df1653f 100644
--- a/util/path.c
+++ b/util/path.c
@@ -46,9 +46,12 @@ static struct pathelem *new_entry(const char *root,
                                    const char *name)
  {
      struct pathelem *new = malloc(sizeof(*new));
-    new->name = strdup(name);
-    new->pathname = g_strdup_printf("%s/%s", root, name);
-    new->num_entries = 0;

Erm... isn't that malloc wrong as sizeof(*new) would be the size of a
pointer?


No, this is OK! It is equal to sizeof(struct pathelem).

+
+    if (new) {
+        new->name = strdup(name);
+        new->pathname = g_strdup_printf("%s/%s", root, name);
+        new->num_entries = 0;
+    }
      return new;
  }

A better approach may be to just g_malloc which would abort on failure
(which would be fine for setup).


Hmm, Good idea! It is more quickly to know what happen when it fails.
I will change to it, Thanks, Alex.

static struct pathelem *new_entry(const char *root,
                                   struct pathelem *parent,
                                   const char *name)
{
     struct pathelem *new = g_malloc(sizeof(pathelem));
     new->name = g_strdup(name);
     new->pathname = g_strdup_printf("%s/%s", root, name);
     new->num_entries = 0;
     return new;
}






Reply via email to