From nobody Sun Sep 28 17:44:03 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1757426319; cv=none; d=zohomail.com; s=zohoarc; b=dLKlxARCOTjfkmV+qqE0wpCx4XfTSAlfwSIDlsbPtlQa8h3Xgw0I286QuC9RGFlR7matbCyXlIFTyKHzMYKMxdDUCEve2KpIbUkGzft60SGB8wcEtdPiin8ywT32fK/mbMd36BoLwtHbCUzxnKkDNL+t2ajbcp5wcmxnxUrYzgE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1757426319; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BENAf1qfrvCW0Si6gdrn46mToEtpgfMW8Mt+POWA6i4=; b=RSMXE8ETC1ima8p3nbc2adfnJveV1au5d3RF4dlaRkO+BlNh1HQ2lc2YvtuOdy4D3Ja7osiazmCLSUzATWODhMUBdi2rK5LVbW4u8z03CT6q6M+fJzTa3NYohSr1MIW+NAuTQi+njAwWarpplC7qJIlAwMXlJRUyXwaq/GwPY6Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1757426319610920.9390262270147; Tue, 9 Sep 2025 06:58:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uvym0-0000qn-Bp; Tue, 09 Sep 2025 09:52:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uvylX-0000jG-BS for qemu-devel@nongnu.org; Tue, 09 Sep 2025 09:52:12 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uvylQ-0005Ea-2Y for qemu-devel@nongnu.org; Tue, 09 Sep 2025 09:52:09 -0400 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-689-fciiJx_2Ozir6Xa6NVT87A-1; Tue, 09 Sep 2025 09:52:01 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 64A39195608A; Tue, 9 Sep 2025 13:52:00 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.45.224.46]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id F3B4C18003FC; Tue, 9 Sep 2025 13:51:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1757425922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BENAf1qfrvCW0Si6gdrn46mToEtpgfMW8Mt+POWA6i4=; b=JY+YNMLSwXBA2LHAl7e7ayiJizFJ5KcbPyxQ7Tmnjdx0nGhZGxf2TtWhNQ9XqTA3mNP60I ZVkz90ZjAStJnaalxHQ9OEu28tcsA4cXTkkCXpxqlu7dCBiBXQspmyA/QDMAMnaF0TStxO OJQovO9Udz+NevLIBK6FKksQxcj4ESw= X-MC-Unique: fciiJx_2Ozir6Xa6NVT87A-1 X-Mimecast-MFC-AGG-ID: fciiJx_2Ozir6Xa6NVT87A_1757425920 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Richard Henderson , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Subject: [PULL 05/23] ui/vnc: Fix crash when specifying [vnc] without id in the config file Date: Tue, 9 Sep 2025 15:51:29 +0200 Message-ID: <20250909135147.612345-6-thuth@redhat.com> In-Reply-To: <20250909135147.612345-1-thuth@redhat.com> References: <20250909135147.612345-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1757426321866124100 From: Thomas Huth QEMU currently crashes when there is a [vnc] section in the config file that does not have an "id =3D ..." line: $ echo "[vnc]" > /tmp/qemu.conf $ ./qemu-system-x86_64 -readconfig /tmp/qemu.conf qemu-system-x86_64: ../../devel/qemu/ui/vnc.c:4347: vnc_init_func: Assertion `id' failed. Aborted (core dumped) The required "id" is only set up automatically while parsing the command line, but not when reading the options from the config file. Thus let's move code that automatically adds the id (if it does not exist yet) to the init function that needs the id for the first time, replacing the assert() statement there. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2836 Reviewed-by: Marc-Andr=C3=A9 Lureau Signed-off-by: Thomas Huth Message-ID: <20250821145130.845104-1-thuth@redhat.com> --- ui/vnc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index 68ca4a68e7a..9054fc81253 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -4309,8 +4309,9 @@ void vnc_display_add_client(const char *id, int csock= , bool skipauth) } } =20 -static void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts) +static char *vnc_auto_assign_id(QemuOpts *opts) { + QemuOptsList *olist =3D qemu_find_opts("vnc"); int i =3D 2; char *id; =20 @@ -4320,23 +4321,18 @@ static void vnc_auto_assign_id(QemuOptsList *olist,= QemuOpts *opts) id =3D g_strdup_printf("vnc%d", i++); } qemu_opts_set_id(opts, id); + + return id; } =20 void vnc_parse(const char *str) { QemuOptsList *olist =3D qemu_find_opts("vnc"); QemuOpts *opts =3D qemu_opts_parse_noisily(olist, str, !is_help_option= (str)); - const char *id; =20 if (!opts) { exit(1); } - - id =3D qemu_opts_id(opts); - if (!id) { - /* auto-assign id if not present */ - vnc_auto_assign_id(olist, opts); - } } =20 int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp) @@ -4344,7 +4340,11 @@ int vnc_init_func(void *opaque, QemuOpts *opts, Erro= r **errp) Error *local_err =3D NULL; char *id =3D (char *)qemu_opts_id(opts); =20 - assert(id); + if (!id) { + /* auto-assign id if not present */ + id =3D vnc_auto_assign_id(opts); + } + vnc_display_init(id, &local_err); if (local_err) { error_propagate(errp, local_err); --=20 2.51.0