diff mbox

[1/3] query-memdev: fix potential memory leaks

Message ID 1406888562-15114-2-git-send-email-chen.fan.fnst@cn.fujitsu.com
State New
Headers show

Commit Message

chenfan Aug. 1, 2014, 10:22 a.m. UTC
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
---
 numa.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Peter Crosthwaite Aug. 1, 2014, 1:08 p.m. UTC | #1
On Fri, Aug 1, 2014 at 8:22 PM, Chen Fan <chen.fan.fnst@cn.fujitsu.com> wrote:
> Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

> ---
>  numa.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/numa.c b/numa.c
> index 7bf7834..a2b4bca 100644
> --- a/numa.c
> +++ b/numa.c
> @@ -318,10 +318,11 @@ void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
>  static int query_memdev(Object *obj, void *opaque)
>  {
>      MemdevList **list = opaque;
> +    MemdevList *m = NULL;
>      Error *err = NULL;
>
>      if (object_dynamic_cast(obj, TYPE_MEMORY_BACKEND)) {
> -        MemdevList *m = g_malloc0(sizeof(*m));
> +        m = g_malloc0(sizeof(*m));
>
>          m->value = g_malloc0(sizeof(*m->value));
>
> @@ -369,6 +370,9 @@ static int query_memdev(Object *obj, void *opaque)
>
>      return 0;
>  error:
> +    g_free(m->value);
> +    g_free(m);
> +
>      return -1;
>  }
>
> --
> 1.9.3
>
>
diff mbox

Patch

diff --git a/numa.c b/numa.c
index 7bf7834..a2b4bca 100644
--- a/numa.c
+++ b/numa.c
@@ -318,10 +318,11 @@  void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
 static int query_memdev(Object *obj, void *opaque)
 {
     MemdevList **list = opaque;
+    MemdevList *m = NULL;
     Error *err = NULL;
 
     if (object_dynamic_cast(obj, TYPE_MEMORY_BACKEND)) {
-        MemdevList *m = g_malloc0(sizeof(*m));
+        m = g_malloc0(sizeof(*m));
 
         m->value = g_malloc0(sizeof(*m->value));
 
@@ -369,6 +370,9 @@  static int query_memdev(Object *obj, void *opaque)
 
     return 0;
 error:
+    g_free(m->value);
+    g_free(m);
+
     return -1;
 }