From 5e6b701aba8689a336297dda047bf760ffc05291 Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Fri, 24 Jun 2011 16:59:46 +0100 Subject: [PATCH] xen_console: fix memory leak con_init leaks the string "type", fix it. Signed-off-by: Stefano Stabellini Signed-off-by: Alexander Graf --- hw/xen_console.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/xen_console.c b/hw/xen_console.c index c6c816381..2d613ee6e 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_connect(struct XenDevice *xendev) -- 2.39.2