From 521534df57cc0bee7b0da9e69fbbaa7149036ddb Mon Sep 17 00:00:00 2001 From: Zihao Chang Date: Mon, 11 Jan 2021 21:19:11 +0800 Subject: [PATCH] vnc: fix unfinalized tlscreds for VncDisplay MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In vnc_display_open(), if tls-creds is enabled, do object_ref(object ref 1->2) for tls-creds. While in vnc_display_close(), object_unparent sets object ref to 1(2->1) and unparent the object for root. Problem: 1. the object can not be found from the objects_root, while the object is not finalized. 2. the qemu_opts of tls-creds(id: creds0) is not deleted, so new tls object with the same id(creds0) can not be delete & add. Signed-off-by: Zihao Chang Reviewed-by: Daniel P. Berrangé Message-Id: <20210111131911.805-1-changzihao1@huawei.com> Signed-off-by: Gerd Hoffmann --- ui/vnc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/vnc.c b/ui/vnc.c index 7452ac7df2..69e92b1ef3 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -3234,7 +3234,7 @@ static void vnc_display_close(VncDisplay *vd) vd->auth = VNC_AUTH_INVALID; vd->subauth = VNC_AUTH_INVALID; if (vd->tlscreds) { - object_unparent(OBJECT(vd->tlscreds)); + object_unref(OBJECT(vd->tlscreds)); vd->tlscreds = NULL; } if (vd->tlsauthz) { -- 2.11.0