Patchwork xen_console: fix memory leak

login
register
mail settings
Submitter Stefano Stabellini
Date June 24, 2011, 3:59 p.m.
Message ID <1308931186-11387-1-git-send-email-stefano.stabellini@eu.citrix.com>
Download mbox | patch
Permalink /patch/101824/
State New
Headers show

Comments

Stefano Stabellini - June 24, 2011, 3:59 p.m.
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

con_init leaks the string "type", fix it.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 hw/xen_console.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
Alexander Graf - June 30, 2011, 3:09 p.m.
On 06/24/2011 05:59 PM, stefano.stabellini@eu.citrix.com wrote:
> From: Stefano Stabellini<stefano.stabellini@eu.citrix.com>
>
> con_init leaks the string "type", fix it.

Thanks, applied to xen-next branch.


Alex

Patch

diff --git a/hw/xen_console.c b/hw/xen_console.c
index e88714f..519d5f5 100644
--- a/hw/xen_console.c
+++ b/hw/xen_console.c
@@ -180,6 +180,7 @@  static int con_init(struct XenDevice *xendev)
 {
     struct XenConsole *con = container_of(xendev, struct XenConsole, xendev);
     char *type, *dom;
+    int ret = 0;
 
     /* setup */
     dom = xs_get_domain_path(xenstore, con->xendev.dom);
@@ -189,7 +190,8 @@  static int con_init(struct XenDevice *xendev)
     type = xenstore_read_str(con->console, "type");
     if (!type || strcmp(type, "ioemu") != 0) {
 	xen_be_printf(xendev, 1, "not for me (type=%s)\n", type);
-	return -1;
+        ret = -1;
+        goto out;
     }
 
     if (!serial_hds[con->xendev.dev])
@@ -198,7 +200,9 @@  static int con_init(struct XenDevice *xendev)
     else
         con->chr = serial_hds[con->xendev.dev];
 
-    return 0;
+out:
+    qemu_free(type);
+    return ret;
 }
 
 static int con_initialise(struct XenDevice *xendev)