|
|
218e99 |
From c4a5b67ffac094aa1653de8e9369585b0bc4ee46 Mon Sep 17 00:00:00 2001
|
|
|
218e99 |
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
218e99 |
Date: Mon, 14 Oct 2013 13:35:19 +0200
|
|
|
218e99 |
Subject: [PATCH 12/18] qemu-char: minor mux chardev fixes
|
|
|
218e99 |
|
|
|
218e99 |
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
218e99 |
Message-id: <1381757723-23134-12-git-send-email-kraxel@redhat.com>
|
|
|
218e99 |
Patchwork-id: 54861
|
|
|
218e99 |
O-Subject: [RHEL-7 qemu-kvm PATCH 11/15] qemu-char: minor mux chardev fixes
|
|
|
218e99 |
Bugzilla: 922010
|
|
|
218e99 |
RH-Acked-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
218e99 |
|
|
|
218e99 |
mux failure path has a memory leak. creating a mux chardev can't
|
|
|
218e99 |
fail though, so just assert() that instead of fixing an error path
|
|
|
218e99 |
which never ever runs anyway ...
|
|
|
218e99 |
|
|
|
218e99 |
Also fix bid being leaked while being at it.
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
|
218e99 |
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
218e99 |
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
|
|
|
218e99 |
(cherry picked from commit dc2c4eca89ec5ee7b7a4c2563c991a14a7c5ee84)
|
|
|
218e99 |
---
|
|
|
218e99 |
qemu-char.c | 7 +++----
|
|
|
218e99 |
1 file changed, 3 insertions(+), 4 deletions(-)
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
218e99 |
---
|
|
|
218e99 |
qemu-char.c | 7 +++----
|
|
|
218e99 |
1 files changed, 3 insertions(+), 4 deletions(-)
|
|
|
218e99 |
|
|
|
218e99 |
diff --git a/qemu-char.c b/qemu-char.c
|
|
|
218e99 |
index b41bda4..145fd30 100644
|
|
|
218e99 |
--- a/qemu-char.c
|
|
|
218e99 |
+++ b/qemu-char.c
|
|
|
218e99 |
@@ -3213,7 +3213,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
|
|
|
218e99 |
ChardevBackend *backend = g_new0(ChardevBackend, 1);
|
|
|
218e99 |
ChardevReturn *ret = NULL;
|
|
|
218e99 |
const char *id = qemu_opts_id(opts);
|
|
|
218e99 |
- const char *bid = NULL;
|
|
|
218e99 |
+ char *bid = NULL;
|
|
|
218e99 |
|
|
|
218e99 |
if (qemu_opt_get_bool(opts, "mux", 0)) {
|
|
|
218e99 |
bid = g_strdup_printf("%s-base", id);
|
|
|
218e99 |
@@ -3240,9 +3240,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
|
|
|
218e99 |
backend->kind = CHARDEV_BACKEND_KIND_MUX;
|
|
|
218e99 |
backend->mux->chardev = g_strdup(bid);
|
|
|
218e99 |
ret = qmp_chardev_add(id, backend, errp);
|
|
|
218e99 |
- if (error_is_set(errp)) {
|
|
|
218e99 |
- goto qapi_out;
|
|
|
218e99 |
- }
|
|
|
218e99 |
+ assert(!error_is_set(errp));
|
|
|
218e99 |
}
|
|
|
218e99 |
|
|
|
218e99 |
chr = qemu_chr_find(id);
|
|
|
218e99 |
@@ -3251,6 +3249,7 @@ CharDriverState *qemu_chr_new_from_opts(QemuOpts *opts,
|
|
|
218e99 |
qapi_out:
|
|
|
218e99 |
qapi_free_ChardevBackend(backend);
|
|
|
218e99 |
qapi_free_ChardevReturn(ret);
|
|
|
218e99 |
+ g_free(bid);
|
|
|
218e99 |
return chr;
|
|
|
218e99 |
}
|
|
|
218e99 |
|
|
|
218e99 |
--
|
|
|
218e99 |
1.7.1
|
|
|
218e99 |
|