Commit ddf5738503 for qemu.org

commit ddf5738503e2ba6adb74359abf3b6e7aa81af420
Author: Fabiano Rosas <farosas@suse.de>
Date:   Wed Jun 3 11:11:37 2026 -0300

    chardev: Don't unregister yank upon async path connection failure

    Commit 5c102ac9 ("chardev: Consolidate yank registration") has moved
    yank registration in the tcp_chr_connect_client_async() path to after
    the connection is successful. If qio_channel_socket_connect_sync()
    fails early, there will be no yank registered to be unregistered in
    the error path, leading to assert.

    Remove the now-extraneous unregister.

    Cc: qemu-stable@nongnu.org
    Fixes: 5c102ac9 ("chardev: Consolidate yank registration")
    Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3528
    Signed-off-by: Fabiano Rosas <farosas@suse.de>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-ID: <20260603141137.1108963-1-farosas@suse.de>

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index b629575fcf..81bac42a15 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1128,11 +1128,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);
-        if (s->registered_yank) {
-            yank_unregister_function(CHARDEV_YANK_INSTANCE(chr->label),
-                                     char_socket_yank_iochannel,
-                                     QIO_CHANNEL(sioc));
-        }
         check_report_connect_error(chr, err);
         goto cleanup;
     }