From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11023072.outbound.protection.outlook.com [40.107.162.72]) by lore.virtuozzo.com (Postfix) with ESMTPS id F24EC80275 for ; Fri, 4 Sep 2026 10:12:28 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=v5u5vKxmvGeA0OO5DCsL7bDzH/RmbEIKUxlwpF5sspKgg8Rxx1UTmLY8qvsCfmINkg9J7uz1N+y7DY4JOnQTwSIvuSwZxhWgdOKkMT6nl+TdDwgoSaeGWxwFtXYoT4QhKSy0weKoIIAXhj0RXdxv/4Xm7AHAUIcmnL0RaQR5A30PFB5NEg2UyDlKFeJCqn2aUU06FZQKiWjI7es/nQrYhlHNKjQykKYcZbm9T0aNnm496l03QNj86hC0K1jLsiJ2EBauSXEUQ1MQmQ86poKGTUB4no1Rta+JdK8JKwh2KFRxHZPPLA9KXZ1EcQM5GYIz15c5ijRvXHx1lnPsZi9aYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QG2OQCyxl6J/EF0ra9n5YPGGk2QwIuKkofrDuk5UaJI=; b=GlY1uBmNXYXqJjeXrWOKZ1TekDm+WB8aFZAXwkkwl5g7nHE/3kAPiptDZIfZ0F6t87Na1wjTUSi8NHuBtFZrYYzyHzjk7GXnX1T0WvKz86JR8s42nRR42jcUr1DtnZc9a8cm2IEp6ZbXfyf1CJFwE9pTW46jl/lWlz0kn10BddAZnpXBilfyK0BMi4QrfJr1+Lyppx/lR3p3Ej8+fDNLqZjH4UuqF4yD6DVaO0SKbWXLZI0MY8LSvQRdGwwd0kk3PpAgY5cVQ4QRzgi9HwCZWqIO3xbkLDzP7335wu8+kicyrNtKlRTQRe2JP2qu+xIZjIH5eGxctuzIqrvm5aV19g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QG2OQCyxl6J/EF0ra9n5YPGGk2QwIuKkofrDuk5UaJI=; b=NgY1HZsrWOM9nyWjQjcIoTt88hoKHXCwi09HGFZFexhw7JNeJtjdO/ghK4URsNDamRI5/LDco8mN+StyRZNhMntFXpLKVvmNusqGzVED7MwwgamzeoJFGGQMmxpkiT1+dzZqk3eXQRFlBR+A1416lAiyZh4Wn5ZBp7FhHj0T5zZdQIYM2C3/lbSdEUyuYxB3HXBJeON0aMSP2fwuMIgJoLBN4lLL7LNDt6BDFWsJOt7Azwv4jt5aRXqPHUATv3B+sawA14qZ9j52iAj7a/2aaMyPoXdP9oaB/MTeDzaNdragmZBD7HaDtV11JZJseGRew1+c3cv1OlMJSzHK2SO7dQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DBBPR08MB6105.eurprd08.prod.outlook.com (2603:10a6:10:20d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Fri, 4 Sep 2026 10:12:27 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 10:12:27 +0000 From: Andrey Drobyshev To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [QEMU HCI-8.0 PATCH 13/15] ui/vnc: Fix crash when specifying [vnc] without id in the config file Date: Fri, 4 Sep 2026 13:12:03 +0300 Message-ID: <20260904101206.701978-14-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260904101206.701978-1-andrey.drobyshev@virtuozzo.com> References: <20260904101206.701978-1-andrey.drobyshev@virtuozzo.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: VIUP296CA0052.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::10) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DBBPR08MB6105:EE_ X-MS-Office365-Filtering-Correlation-Id: db4b2506-9b42-4875-344e-08df0a6d0358 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|52116014|5113699003|6133799003|18002099003|22082099003|56012099006|10067099003|38350700014; X-Microsoft-Antispam-Message-Info: P49FV81bhVlj2rNruLH+JrinxnNtgiL0pnTy8xoLOXLDf6k2Vj+AeSiAmmiJ09NuwoxX1XT2276KsJCOJ5tFraf8snEKITEc75OAPmyKR/ilt6W/lLao5zKk49Sj12eRvPrS1mYbL2Kmtk3I2/UYHpZXPE+RiT9vTvWn0xvNyu7q9uv0UYK/0Q9ImjuHrs8FABr8tlxZK1tdXI/NPTQP+ZszVCu9M5Mp+vi7n6Lhy2JWHnEjtbomuP2xyZFTnynniy13+MGpweqfX2Z1NGIxVtItNqDtQibiLW4jeYGk0ainuNq417wSKbZnb7pbAvo+/oIWUz7A9f41wWJ73dO0GA0zVeYO82ufKj99XTUyv/BujzROXm9zuDNYIa3pcIUQWg0gaegtO/Wr0VKRsEdnXXut0TW/iqvOxRBg7XKQYQvvYIOITtirIp83VHFivlfLTCtDs+I/JlqbrH+gW4MjTx0rtuyU5xLnRYJWocrHT8zYUeDDeTMcK8YdYU0yNxyswqM6y4gRCaCD8GJHOX+eXL3+SVSD3tqcl8vaf/GSVeKQ3Q1y9dsW9moWUFfN4Lf9t/GSsgZro6XRBoRXK9xh037xUpmyHPcmaWXt47/k5tFEeyf/77zWpnHI56h9gbBP4tiv2v2LkYn4oXZXtVw1xBK3H81ls5V0qvU1cgcyC+QuYtDhU+FUm4ToDFBc+Dt75gXaR8cdPi8eWCm03ZO5v2HY/Xwk2hr5jPCWL+O2ITc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(52116014)(5113699003)(6133799003)(18002099003)(22082099003)(56012099006)(10067099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aVlZdzB2MHZsR21OV1YxY3djOFZMKzN1UjgxNGw1aWhyOWdrVVM0dy9ON0VL?= =?utf-8?B?b2R4cU95UGo3azZMNEdOaFQza1dvR0s3dGNYYTdQaEF1eitJZVROczkwZ1Y5?= =?utf-8?B?M3hrY2xXRW5EZmpGL3pmV1U3aGZzRkcrbktObUhYcHNwWmVvbmE0Nm5oWGRE?= =?utf-8?B?dWlEVXRFQzFIYVFmYlkyUkhaR0dDRDNtbXZGa0l4TlhjZFZzL1k3MXI3WEtk?= =?utf-8?B?Mnd2Y1ptbXVzd2NKMkZyY3JWT1VCMXdHaFY1TXlLS0RkZGFKcWJHWFlGM0hv?= =?utf-8?B?YWV4QkFMZUI0QTh4ZW80Sk10T09MTGlpaDl0dlJUTmtlK0NEUUdHYnFyUWpJ?= =?utf-8?B?SWYwRUQvYzVTU2lXK0F3STJESkF6K3A3K1kxK2IwM3dyem9oQ2k4cWNJR1Uy?= =?utf-8?B?ZVc0THhESFUyZnAyRkF1MExzSGcxRDAyK2cwd3BYZTZ1SnpGWkRFRFpsQThZ?= =?utf-8?B?aDNZVGZ3T3pGei94RmI2K0VCNGRvNmQyNmJMSDQ1d1ZEVmZtTHp2em1NeVMw?= =?utf-8?B?c3NOeGFYcGNqU1N4cUdLY0RmVzFLM2hHTGYwSmRyQ2xKS0ladFFKQnRFZ0NI?= =?utf-8?B?N2pGZ3F0OUVjbzd1VFRBQjVDNU5GZG5nb2p0QWRnUkg3SmN6cTJBakFlcDZM?= =?utf-8?B?cXNsT0Z0U0FjLzBxaG9RN0hXTm90R2M2Y3FjRS9sUmFUZjFHUGFDV2QxaFJ5?= =?utf-8?B?MnpiaXdaeVh1cTBma0xDUjZCK1cyU0tTTkZyRVBTMFk2K05zN3kvQ09aZ1FT?= =?utf-8?B?TzYwazhGOEhod0EzbFh6UXpMSWZ5c3ZxekFSZElvTUNHK1czQW5QQjRZdmN2?= =?utf-8?B?VEJmNWZWbG1lR0w4M2RSRU03RzJGYTNZVndkVkNMOFJIUFFUNkNYaUZlc0RJ?= =?utf-8?B?cm9BS3RiRFlHNUhkR3o1dG9ha1N4VkRvd0Z1NlZVd3JaQlpvN2dzV3RnclJI?= =?utf-8?B?cXRlaFRyUkVrZzZwMkhVOHUxWko2OXA5SzZFM1FuV3VrcXBnT3RaNlNkSUoy?= =?utf-8?B?Vng5OHFIbDVDWi9pY3RZZWdJZFcwVUU4RVNYSTZuKzVBdjZYaElvWllwRmZP?= =?utf-8?B?bFk1QlFrdnJveVNEYWRZaGNZOWJDRGJiR213OUh5eWhXRndaMjNTZCtzM1lR?= =?utf-8?B?TDNGOU9OdTJycDJMR2JvaVZIbVpJZmI2RFEraDh4T2ZDVWVhRnI0Zmo5ZjQ1?= =?utf-8?B?NlowUjYxTnpvOElwdnU1SzgvK09oQyswenpCb3ZDaDB3NFE0NkN1Y2x3a1Jr?= =?utf-8?B?alljWE5ySUppUnV3MWJFT2FNYXRpUXZ0Sms1S1cvSlJoQUxwU09BUkw2NDRz?= =?utf-8?B?UjdwV0l0Zlh0bFVTU0NudjA2NWNKRy9CdkRPMW4wbW5WL0MzY0p1cCtCY2Ju?= =?utf-8?B?V0hMMk4wc2VxUW5sN2lNVUEyK1BlS0MyREczT1ZycmlXZUpsMDBWMWJvTXZ3?= =?utf-8?B?d0YyTkFVK1F3UUN2WVloaXNMVU9uSUJ5UmxEc3o1RXdBelVDeFNUV0owMVgz?= =?utf-8?B?d3N0VXZDYTd3V2NpSU1FenBDRzFQVlZyR1hSdEpHZW16RzRtZzFPVUN0WFNx?= =?utf-8?B?OFhEN3p4R0gycjRpSCtxcVZYakx0SHdTeStYcGdMeFZjS2xvNHlCRHl3bE1R?= =?utf-8?B?N0FCZXhldXlsYm5VajYrNm05dndxaUNneEVpRjdYZ2JLVjVTTzg3VElvZ21x?= =?utf-8?B?R0JXcHhUck4vcTI0aUVRTHcxaTh2K0l0OXlaalU0djdDUGhXcGlRVDVHNlJ1?= =?utf-8?B?WHJHdDNrYU51N3prcklWdkpNaWlBS29jdUZrUnVuSllLWnd0Z2xqcVdWaVhi?= =?utf-8?B?c29DTDFJUm9YNWloM0F5dWhTQ3d0dzhrRnBDaElmRFc3ZnRVbjN6aVgyMHg3?= =?utf-8?B?NmlIQzJqOWJOclZxdVM4MzhTYlVyMUNGK0Jxb0tmbStZVUpqeHUvcnFMMUw5?= =?utf-8?B?NXd0K0dDVDVKSDg2YXBHejNpY3hWZjkxdkZaVFdpb2RTRjlybXREdXVwM3Uz?= =?utf-8?B?ZFJBVUh2ZzdyTDFjejVFYTQrY1lsRWZoY3dIRXVhNk93SUIyYU5LeFRLS2ZK?= =?utf-8?B?NndOWHRrNTVzQS9HUm5qaXY2VDlWOENQVEJhOFhiVjVUTGtqcEZyVTVjeG9Q?= =?utf-8?B?Qi80TVN3R1NhZnBSNHgwamR1VVpSRk9Ob0VxYmRSQ2xHWTRWc21VRnNrRWNi?= =?utf-8?B?azZWUHlSU3l4Mi90OTB1eExvdEp1YkdoeXQ0TjNoTm5nendFR2hhaFNBU3Rh?= =?utf-8?B?NlhCU2xyUjdvZTZuczdqUmRSMm9XQ0dHTzB0L2VxMlR4anplc2p0VmNKLytn?= =?utf-8?B?MjNwUk0xQzFTczR5YmRGNHZ0NUQvdmQ4d1JKR0FqcDh2YTJSNjROc0pKWU1K?= =?utf-8?Q?jKJfbtUEOoxegdGE=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: db4b2506-9b42-4875-344e-08df0a6d0358 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 10:12:23.6848 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ud5012XEj7QipSg2NWEUmvlsoIUoaLn/fDxeX2tKWCqlJ7aOdLmeByBsmFMmUF7QrmmbeszvZ4rPMF/6TkgOndFMEMUOY9TGmNfZK3aq/hE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6105 From: Thomas Huth QEMU currently crashes when there is a [vnc] section in the config file that does not have an "id = ..." 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é Lureau Signed-off-by: Thomas Huth Message-ID: <20250821145130.845104-1-thuth@redhat.com> (cherry picked from commit 38dd513263d814dc3cf554b899c118a46ca77577) Signed-off-by: Michael Tokarev (cherry picked from commit 571a7414e7031e1b646250b904f7babe1e8c526f) --- ui/vnc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index 6c4132b8dbc..016a3b0eb45 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -4327,8 +4327,9 @@ void vnc_display_add_client(const char *id, int csock, bool skipauth) } } -static void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts) +static char *vnc_auto_assign_id(QemuOpts *opts) { + QemuOptsList *olist = qemu_find_opts("vnc"); int i = 2; char *id; @@ -4338,23 +4339,18 @@ static void vnc_auto_assign_id(QemuOptsList *olist, QemuOpts *opts) id = g_strdup_printf("vnc%d", i++); } qemu_opts_set_id(opts, id); + + return id; } void vnc_parse(const char *str) { QemuOptsList *olist = qemu_find_opts("vnc"); QemuOpts *opts = qemu_opts_parse_noisily(olist, str, !is_help_option(str)); - const char *id; if (!opts) { exit(1); } - - id = qemu_opts_id(opts); - if (!id) { - /* auto-assign id if not present */ - vnc_auto_assign_id(olist, opts); - } } int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp) @@ -4362,7 +4358,11 @@ int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp) Error *local_err = NULL; char *id = (char *)qemu_opts_id(opts); - assert(id); + if (!id) { + /* auto-assign id if not present */ + id = vnc_auto_assign_id(opts); + } + vnc_display_init(id, &local_err); if (local_err) { error_propagate(errp, local_err); -- 2.47.1