diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2011-06-24 16:59:46 +0100 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2011-07-17 01:54:25 +0200 |
commit | 5e6b701aba8689a336297dda047bf760ffc05291 (patch) | |
tree | 4782689fb0d2793bae5ef263f231900d05fb56a9 /hw/xen_console.c | |
parent | ad35a7da1a0a40cd8920ba829640bd43e1613ec1 (diff) |
xen_console: fix memory leak
con_init leaks the string "type", fix it.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'hw/xen_console.c')
-rw-r--r-- | hw/xen_console.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/xen_console.c b/hw/xen_console.c index c6c8163813..2d613ee6e5 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) |