]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
chardev/tcp: Fix error message double free error
authorlichun <lichun@ruijie.com.cn>
Sun, 21 Jun 2020 21:30:17 +0000 (05:30 +0800)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Thu, 3 Sep 2020 00:06:19 +0000 (19:06 -0500)
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>
(cherry picked from commit ed4e0d2ef140aef255d67eec30767e5fcd949f58)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
chardev/char-socket.c

index e5ee685f8c999ea6097ef90c5b49f780a9ca721d..58917870cd53ccbd2acc07e45588598e70ac1f7c 100644 (file)
@@ -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);
 }
@@ -1083,7 +1085,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;
     }