Commit c3a6a05f0f for qemu.org
commit c3a6a05f0f5a47dae0c4da00c0ce40cde143c963
Author: Marc-André Lureau <marcandre.lureau@redhat.com>
Date: Sun Oct 4 14:23:27 2026 +0400
ui/clipboard: clean up vm change state handler on last peer unregister
When the last clipboard peer unregisters, the vm change state handler
is left dangling. Remove it to avoid stale callbacks after all peers
are gone.
Fixes: c967ff606b99 ("ui/clipboard: delay clipboard update when not running")
Reported-by: Hui Peng <benquike@gmail.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20261004-issue-4560-v1-13-ccbef537cbeb@redhat.com>
diff --git a/ui/clipboard.c b/ui/clipboard.c
index e3d8a31ba9..46e602dfef 100644
--- a/ui/clipboard.c
+++ b/ui/clipboard.c
@@ -76,6 +76,10 @@ void qemu_clipboard_peer_unregister(QemuClipboardPeer *peer)
qemu_clipboard_peer_release(peer, i);
}
notifier_remove(&peer->notifier);
+ if (QLIST_EMPTY(&clipboard_notifiers.notifiers)) {
+ g_clear_pointer(&cb_change_state_entry,
+ qemu_del_vm_change_state_handler);
+ }
}
bool qemu_clipboard_peer_owns(QemuClipboardPeer *peer,