diff mbox

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

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

Commit Message

chenfan Aug. 4, 2014, 4:21 a.m. UTC
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(-)

Comments

Hu Tao Aug. 4, 2014, 7:29 a.m. UTC | #1
On Mon, Aug 04, 2014 at 12:21:17PM +0800, Chen Fan wrote:
> Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

Reviewed-by: Hu Tao <hutao@cn.fujitsu.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;
 }