diff mbox

[v6,05/10] util/path: Use the GLib memory allocation routines

Message ID 1408001361-13580-6-git-send-email-zhang.zhanghailiang@huawei.com
State New
Headers show

Commit Message

Zhanghailiang Aug. 14, 2014, 7:29 a.m. UTC
In this file, we don't check the return value of malloc/strdup/realloc which may fail.
Instead of using these routines, we use the GLib memory APIs g_malloc/g_strdup/g_realloc.
They will exit on allocation failure, so there is no need to test for failure,
which would be fine for setup.

Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
---
 util/path.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Michael S. Tsirkin Aug. 14, 2014, 10:15 a.m. UTC | #1
On Thu, Aug 14, 2014 at 03:29:16PM +0800, zhanghailiang wrote:
> In this file, we don't check the return value of malloc/strdup/realloc which may fail.
> Instead of using these routines, we use the GLib memory APIs g_malloc/g_strdup/g_realloc.
> They will exit on allocation failure, so there is no need to test for failure,
> which would be fine for setup.
> 
> Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  util/path.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/util/path.c b/util/path.c
> index 5c59d9f..e152f2a 100644
> --- a/util/path.c
> +++ b/util/path.c
> @@ -45,8 +45,8 @@ static struct pathelem *new_entry(const char *root,
>                                    struct pathelem *parent,
>                                    const char *name)
>  {
> -    struct pathelem *new = malloc(sizeof(*new));
> -    new->name = strdup(name);
> +    struct pathelem *new = g_malloc(sizeof(*new));
> +    new->name = g_strdup(name);
>      new->pathname = g_strdup_printf("%s/%s", root, name);
>      new->num_entries = 0;
>      return new;

Would not we have to free name using g_free as well?

> @@ -88,7 +88,7 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
>  
>      root->num_entries++;
>  
> -    root = realloc(root, sizeof(*root)
> +    root = g_realloc(root, sizeof(*root)
>                     + sizeof(root->entries[0])*root->num_entries);
>      e = &root->entries[root->num_entries-1];

> -- 
> 1.7.12.4
>
Zhanghailiang Aug. 18, 2014, 5:59 a.m. UTC | #2
On 2014/8/14 18:15, Michael S. Tsirkin wrote:
> On Thu, Aug 14, 2014 at 03:29:16PM +0800, zhanghailiang wrote:
>> In this file, we don't check the return value of malloc/strdup/realloc which may fail.
>> Instead of using these routines, we use the GLib memory APIs g_malloc/g_strdup/g_realloc.
>> They will exit on allocation failure, so there is no need to test for failure,
>> which would be fine for setup.
>>
>> Signed-off-by: zhanghailiang<zhang.zhanghailiang@huawei.com>
>> Reviewed-by: Alex Bennée<alex.bennee@linaro.org>
>> ---
>>   util/path.c | 6 +++---
>>   1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/util/path.c b/util/path.c
>> index 5c59d9f..e152f2a 100644
>> --- a/util/path.c
>> +++ b/util/path.c
>> @@ -45,8 +45,8 @@ static struct pathelem *new_entry(const char *root,
>>                                     struct pathelem *parent,
>>                                     const char *name)
>>   {
>> -    struct pathelem *new = malloc(sizeof(*new));
>> -    new->name = strdup(name);
>> +    struct pathelem *new = g_malloc(sizeof(*new));
>> +    new->name = g_strdup(name);
>>       new->pathname = g_strdup_printf("%s/%s", root, name);
>>       new->num_entries = 0;
>>       return new;
>
> Would not we have to free name using g_free as well?
>

Yes, Good catch, i will do this, Thanks.

>> @@ -88,7 +88,7 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
>>
>>       root->num_entries++;
>>
>> -    root = realloc(root, sizeof(*root)
>> +    root = g_realloc(root, sizeof(*root)
>>                      + sizeof(root->entries[0])*root->num_entries);
>>       e =&root->entries[root->num_entries-1];
>
>> --
>> 1.7.12.4
>>
>
> .
>
diff mbox

Patch

diff --git a/util/path.c b/util/path.c
index 5c59d9f..e152f2a 100644
--- a/util/path.c
+++ b/util/path.c
@@ -45,8 +45,8 @@  static struct pathelem *new_entry(const char *root,
                                   struct pathelem *parent,
                                   const char *name)
 {
-    struct pathelem *new = malloc(sizeof(*new));
-    new->name = strdup(name);
+    struct pathelem *new = g_malloc(sizeof(*new));
+    new->name = g_strdup(name);
     new->pathname = g_strdup_printf("%s/%s", root, name);
     new->num_entries = 0;
     return new;
@@ -88,7 +88,7 @@  static struct pathelem *add_entry(struct pathelem *root, const char *name,
 
     root->num_entries++;
 
-    root = realloc(root, sizeof(*root)
+    root = g_realloc(root, sizeof(*root)
                    + sizeof(root->entries[0])*root->num_entries);
     e = &root->entries[root->num_entries-1];