diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-11-02 11:24:49 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2005-11-02 11:24:49 +0100 |
commit | 68917d13804741e323ac17b8b40e1e65b655160a (patch) | |
tree | 5fa6f72776e85fc30fd90b0527b646226ecc0195 /tools/console | |
parent | a108cd00521e6f5f49ddfeb40d48511927d2bc94 (diff) | |
download | xen-68917d13804741e323ac17b8b40e1e65b655160a.tar.gz xen-68917d13804741e323ac17b8b40e1e65b655160a.tar.bz2 xen-68917d13804741e323ac17b8b40e1e65b655160a.zip |
Fix memory leak in domain cleanup spotted by doremifa in #xen.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'tools/console')
-rw-r--r-- | tools/console/daemon/io.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index ef3f094d27..d4593f0d80 100644 --- a/tools/console/daemon/io.c +++ b/tools/console/daemon/io.c @@ -380,12 +380,21 @@ static void cleanup_domain(struct domain *d) if (!buffer_empty(&d->buffer)) return; - if (d->buffer.data) + if (d->buffer.data) { free(d->buffer.data); - d->buffer.data = NULL; - if (d->tty_fd != -1) + d->buffer.data = NULL; + } + + if (d->tty_fd != -1) { close(d->tty_fd); - d->tty_fd = -1; + d->tty_fd = -1; + } + + if (d->conspath) { + free(d->conspath); + d->conspath = NULL; + } + remove_domain(d); } |