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>
This commit is contained in:
lichun 2020-06-22 05:30:17 +08:00 committed by Markus Armbruster
parent fc1bff9589
commit ed4e0d2ef1

View File

@ -142,6 +142,8 @@ static void check_report_connect_error(Chardev *chr,
"Unable to connect character device %s: ", "Unable to connect character device %s: ",
chr->label); chr->label);
s->connect_err_reported = true; s->connect_err_reported = true;
} else {
error_free(err);
} }
qemu_chr_socket_restart_timer(chr); 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)) { if (qio_task_propagate_error(task, &err)) {
tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED); tcp_chr_change_state(s, TCP_CHARDEV_STATE_DISCONNECTED);
check_report_connect_error(chr, err); check_report_connect_error(chr, err);
error_free(err);
goto cleanup; goto cleanup;
} }