aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlichun <lichun@ruijie.com.cn>2020-06-22 05:30:17 +0800
committerMarkus Armbruster <armbru@redhat.com>2020-07-02 06:24:31 +0200
commited4e0d2ef140aef255d67eec30767e5fcd949f58 (patch)
treeab32a0f35003c174f188ee4d43dec68328ef2e38
parentfc1bff958998910ec8d25db86cd2f53ff125f7ab (diff)
downloadqemu-ed4e0d2ef140aef255d67eec30767e5fcd949f58.zip
qemu-ed4e0d2ef140aef255d67eec30767e5fcd949f58.tar.gz
qemu-ed4e0d2ef140aef255d67eec30767e5fcd949f58.tar.bz2
chardev/tcp: Fix error message double free error
Errors are already freed by error_report_err, so we only need to call error_free when that function is not called. Cc: qemu-stable@nongnu.org Signed-off-by: lichun <lichun@ruijie.com.cn> Message-Id: <20200621213017.17978-1-lichun@ruijie.com.cn> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Commit message improved, cc: qemu-stable] Signed-off-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r--chardev/char-socket.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index afebeec..569d54c 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -142,6 +142,8 @@ static void check_report_connect_error(Chardev *chr,
"Unable to connect character device %s: ",
chr->label);
s->connect_err_reported = true;
+ } else {
+ error_free(err);
}
qemu_chr_socket_restart_timer(chr);
}
@@ -1086,7 +1088,6 @@ static void qemu_chr_socket_connected(QIOTask *task, void *opaque)
if (qio_task_propagate_error(task, &err)) {
tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
check_report_connect_error(chr, err);
- error_free(err);
goto cleanup;
}