From nobody Mon Sep 8 16:52:43 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1756987942; cv=pass; d=zohomail.com; s=zohoarc; b=Yzd3mD7ajbsSMvQH+sP7JypYNOZTxABE4iTP6Y0iDkiN11UDI9gaAFdkw3cyqG15GXdiqS7d/6vGUdvMKnNmKBoCTum86vMlLZROjhnBR2QJ+yk9MaPfWD4XeAebMA1jVACr+7U94RxQSbMrEElUk40ag9rHP3gP9NvPdiOros8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756987942; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=/vgVGDZ6NNnMg58PSiGRegFcWASmsrqpBRwuoXR3LW4=; b=N4N8oStU6GPabhK2lnKHkeZgF9qgnw0aca776l/4kT1eGm1V64hvUaXq7G9ILGIabMcRv+gJ/X8Nt4cSabzp8fc7CUgVqxXXpgL4ptFD5a1pm/dbGfusPv7ULIwv4ow+oAbhZcx5oWGCnmN+CxWqLLNi2obtpqZJyNbhpI9JnUM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=cyberus-technology.de); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1756987940756530.0770243922701; Thu, 4 Sep 2025 05:12:20 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9181D44332; Thu, 4 Sep 2025 08:12:19 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 0FC69442FF; Thu, 4 Sep 2025 08:11:05 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 195D644208; Thu, 4 Sep 2025 08:10:52 -0400 (EDT) Received: from FR6P281CU001.outbound.protection.outlook.com (mail-germanywestcentralazon11020106.outbound.protection.outlook.com [52.101.171.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A7436441FF for ; Thu, 4 Sep 2025 08:10:50 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BE1P281MB2898.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:6e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Thu, 4 Sep 2025 12:10:46 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9094.017; Thu, 4 Sep 2025 12:10:46 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=ARC_SIGNED,ARC_VALID, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=El2UlygvptgAIdcvpDOWRTOgqAv2Y0PSz0mEghlAV74rHB8dRyfwhxgBxdLti4BtgdF2O14GSxiUym8uoejybm4Db4ShSyquWlCAk3ilO6MORjxmgpBnDaSqZXUXLcX6+pKoxZ6n2hN5uOCTUABbGKa1b4pwHATSlmQTqFrk+r+rY0XyDeDq9/n0yTaG53mET4K6pCnDFUHp0mu8mzPz6+tUOvF+mybMi39bjkJhAxwdIW2OKMvLVI1TYeMSV5iBeoJcou+gDNCREjg5SxlrLOWU58av/d7cmq/rHFmdqQBVil3jy/w+d5CR+GbxlmKzWEMYxjb7VSjrkxbDEFvlyQ== 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=/vgVGDZ6NNnMg58PSiGRegFcWASmsrqpBRwuoXR3LW4=; b=vnA+8ghuNu1fjTQInEVSRGvESIeI12IIMiNxjFf8dI+8qUkPQ65WG4bgrZXF+OT171SaR3lQ5NnP/j1FRSIwfuMvjBaa3EklDcCyhFeEsmjiemv2QwMfRJQCW6X8bGLvF0cqfcZ2XQGhpT6cobBcJhkKzGD0Mk3v5Gepbwg3B0xYG6bsGhF+1hnOEW7Qm5cvCm7s3CcBML3CvQnpj411nP94vu1qAtUTY7+oXuNTWWL/gq8oelfQBsvrz4FOsIhhfXJB3eosN9pxzVs9id13+tC+2uLp0VmqIkaOnZL8CKUJBhWbN5+LFhzGie31RAnGhgqqyiagDxUJTZS6WarCpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/vgVGDZ6NNnMg58PSiGRegFcWASmsrqpBRwuoXR3LW4=; b=AWjKdsMX188DrNRbWDveGdrgScRYX59F1vmoRf7AuJSk2fU54tbnpIfWThGpeR2kZ3biRXFp+PgNsrB1V9XCtnMxF7JkIYtc1pEsxWHhTldZSA+AGEwBD0FxkHn0SpqlZWdeoWp87hN0G7l4w+2+R/S8Qy0skb/TN06e0xIca1i1My1++VlALJPmXJVxElZ60XgMMnGh+DkeFX1m0dSU0PSEuth6hnciZ4K6JvD9j1Qrn2ja0xFzJak95QeSXP3740QLq7ODlbKPp1Hf8VjLdg9kfKuchqjBPVWwVdDM6GFWEI3brCgIlE4aJowp0JZrlqL/g70RgyfLHCl1Y+xDMA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH v3 04/13] ch: refactor virCHMonitorBuildDiskJson Date: Thu, 4 Sep 2025 14:10:26 +0200 Message-ID: <20250904121035.1349575-5-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250904121035.1349575-1-stefan.kober@cyberus-technology.de> References: <20250904121035.1349575-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0282.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::7) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BE1P281MB2898:EE_ X-MS-Office365-Filtering-Correlation-Id: d1a314f8-a5b5-4610-a251-08ddebac134a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gqd2M401e6YTrKUTenxod64hsXbTj3mxkAEJx6E9Q2I95jP1EFXoJOYwLVzz?= =?us-ascii?Q?KBB56FOEd291Th+AF/oEvRTjVDR/+XM7bopH3YQ7hgOcoiJLzsrbRUaVpWmf?= =?us-ascii?Q?isQ10Tefk/zLmbFxPNRMhlQf3itUQ6PyVYGJ3YAhLOE8Zf9ZVpbJOoI79ZqP?= =?us-ascii?Q?7Ksi2QA93KcAGcQs4gnNNZznaw24jHG83Gwm5HqE78tEpNS8g1FRwwMrDsok?= =?us-ascii?Q?yZMfTqVJM+wisIDkkvS9YJ8urAVpp/7szcBkPYR58ikYVMjJtd34eSt2PTjk?= =?us-ascii?Q?8gdA9Bg2xjkfN+4hN3cLWoAPU7zDN6/V7Dli7UAYmTyQioC61tmL0ba+plYW?= =?us-ascii?Q?0AHAlTGh6whnxW/m3XUcwJ9hE9CqwYTHz9ha7focWxAJGNrM4+wE0qBLuncw?= =?us-ascii?Q?rgaRpJ3MLi07fo8fMkqDFyCTecZOQWN4tTqajv8kOLzXs2mrPULQ7DbcHSkU?= =?us-ascii?Q?R3V+rr353Jnl9rAsiqu+xDRf/LSAqZ23fbBPEEWWM5D1zBQiGqtvIFdS45PV?= =?us-ascii?Q?ssbGuMFJ0Y0Z0Fo1nhyM5qL4EaMDtgtmm8+gbZrxSJXXQVOk1vza5kmWUy1/?= =?us-ascii?Q?YIbhuRLTl89/iFidNpPRW8+Hrka06l+Ky//2z/4qWiUtCAeyTFbxIaTqOXCx?= =?us-ascii?Q?1NnmUd3dSL7ah571JuAY0HuZf0y7I73DoE9634zB8XLxZMX8nMAwX9eeDpc/?= =?us-ascii?Q?A2+IsfsqJNdx0o4AgAytdnclURz48gmCB3+rroaCh3n5TV3e6O7+HmzBpUYN?= =?us-ascii?Q?UkN6RUlv/UQKLSTShGl3YDppl5mJ6MNBxIrYn5mesm3wAyj1Pri/eaN6Aa+x?= =?us-ascii?Q?VN0X0/A7sTY6Zfzctks21Uj68hePefj43MdcligGSG0BIbu8tk7UVPs6hZ1H?= =?us-ascii?Q?ANetS046z68cGZKgaa/mCr/D7T74J/KbFOXFQ7efNH8vAzYx6YGohpVimB9A?= =?us-ascii?Q?jsYTfTn3XWPBrZSnuahonN4ck2CMYjvVYYMyykQ1P134fEFtjOIvkWTJ4neH?= =?us-ascii?Q?7mRNXpuc1ueHVbql1rHzrH+OrO7PNqTn64I2v1mE5/zGWCTRSWK6fZR+sUOF?= =?us-ascii?Q?fuLHcexNA5bsZoYPuE/MMPk/zXQ8F9bsD3kAatXhi0XH5sxWA0RXZyH6mvnb?= =?us-ascii?Q?TFjems+hZW60TaCWoWQ3mRWVG14lJiImo71nLZTqYJQs7LVH2civB0IIxVYS?= =?us-ascii?Q?FjT8neoArWYJNQi7snlCvGwJ1MgHieVKiIyTiJUb+Fkz0EmQShwxT6Xn09e7?= =?us-ascii?Q?N2wOX/f6FmrpqaGYuPYGhsBbcmUgIE5NlL6iWAxrxyI3Ajy809m+HJoFV4cx?= =?us-ascii?Q?SzJIpzBTul7TuC9e9lkrF4z8l/UqxlwQw6WLdVc7KVYfnNx3DFSMiMcqlD5o?= =?us-ascii?Q?M9QSq4WV0vXK+FnJfmu+HxZ48xj8TazEDpy4ZSgKCUQqexYWjQ=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ahh4Jdg2hHkEL0LMmDB5N+JGEKM88F19H5fP7aUeSPdBDEUiwAIGb1DyndJN?= =?us-ascii?Q?tUOY7p9O4VEJNC3HDsKC49i8WlW4xHpWs9LtH2/SD1bgSzuZnISeegWDl5yX?= =?us-ascii?Q?TZfJ9Sa9GoNju7shAR4JPxeQTSYRgzgMLQnyFSD7xbxToPF2fgYmY1nQP83e?= =?us-ascii?Q?qcoI3Ev1wld/1IhLIpfM2J67ETPGu61TsWn1jdpfk9ZM50qZ2+sjVSBCfCEO?= =?us-ascii?Q?BKpHm0wQwitFd1ATp/bDoErqg+6q5hJFFcZz4cKUE7Z19tbpjUFa844wQTaz?= =?us-ascii?Q?0qpJGj7042uXoKoWWLJ3sACZqrcNr3UPB3tSBc5kwJPWydWmNPeoaMCs3LaF?= =?us-ascii?Q?M6dn46XneJHjtcFEJwo4e/+yppUheRxr73PleVCnG3OhCkmz7baNafP39C0w?= =?us-ascii?Q?sCpaT77mJ9DueqTHjppBpz173nxqsbHHoO/ckLzwwK0s+4iHh6pQY55ZTDSk?= =?us-ascii?Q?TbypkvWN8iFO7ELl1HNNOslwsHdw7Gf5vXT+GUEM+HwyDbNqbc1JzwlNaWAA?= =?us-ascii?Q?PtSZLvnE7872Bf1WKceKLtTlXk3CSOSLEFnirOS9BfeDBgA46rT+0b59c1SN?= =?us-ascii?Q?DNBh1VUv/+2EGUzKSGq/Vm1eBmYdQlX0IbLxP4i8z2lD2BVwVztZ44jiosUx?= =?us-ascii?Q?9g4i15h1hX+UEYwrmWtfbVhSGTga6S5pFVMG64nxpTMFf8XX+7z/8N+Oi7x3?= =?us-ascii?Q?d8lZEq7hUjlzBvetYUSGYFkM4fMR5+47+E0foScjnpn9SHqWAd9ojYL9QRi1?= =?us-ascii?Q?hI4tFgOPHYe31Igx0nLWDudXsU9uAbRJuyQMNNdF7hOLpU2In0t9J+aSJ2He?= =?us-ascii?Q?R1gOMgbV61DPrGals9J90+du53344t73Rsd8Qw1cehKDqPFGvBaypgNUrMzy?= =?us-ascii?Q?OL5ricyz08Np/PsN1zKbr7PZwRfc83o4MhyQypwGA163vCGF/neaP/YSnwFE?= =?us-ascii?Q?gXMBwwBD27J0FdnxtxkBSOEIaNLuB74aGRCuw2T6kvUJ3W1TPZeNfecshfMU?= =?us-ascii?Q?3nqoLPEEiKisZPjOw669p2IwEWTvN/+YdCgbEuP4I5Ult9MU+/hasA9gnfG0?= =?us-ascii?Q?XtHVsi0irV3R1pJ/23TswF+kwWnbZGXixkOSRYP4j/FZDDlYiskp+JjNbNSB?= =?us-ascii?Q?v8EPJMccQpfY/oo/wKbcxH1Kej3/1uW8zuIf47h+zKrP2OnsW4l4W9IdJ4tz?= =?us-ascii?Q?1A6ORzX0IVRppqZAX2STKIqWZxtoJ/botXyzrLWrZTk0EaoHSIVe5CoVX+DO?= =?us-ascii?Q?GgI0KFRnmm/z+KmTMknWdNz2gMoto9Y3v/QrP740W6MvnKNBWjvLtqcp+sY9?= =?us-ascii?Q?vWP1wWWDTT7TyxdTI6/aWUhBTwtU3OIo2QsksjzbQkTXAJDNHtbOkPbvSvg1?= =?us-ascii?Q?ais5qVflhycn5a/oVuknxsbrynSHCNhIU/lBEeoQ+Ni8GiX7RIlYvIIM+Ghz?= =?us-ascii?Q?7gv4tlwQkZqThUSWRyCBDeHWTFsZlu/hAxe+pZ313pkJJQiw4FU47PW/JWo3?= =?us-ascii?Q?h4FcVlhihZ11tDqhfLRH0yvotvrPKAnB0MR6yZE74qdOZwCDzThBApgn2jzQ?= =?us-ascii?Q?36X3rZLjIpp1mIULucJEXBaxZpa8TREdoVirT5j7HcwQ8dUKzpP6itaMy5St?= =?us-ascii?Q?Pjgc7E1Z7e9ZnvSb2Uz3gEve5TgTiyYpP6Oi0V9YhTQe?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: d1a314f8-a5b5-4610-a251-08ddebac134a X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2025 12:10:44.9283 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 51c25jr55WfKdQhF1J+Gl3g958qPcbBpz98gVoPPZAAUKRoIee4QF5l8Vw1IDP8BZ8TIn2EDlO8A+JPmVoQXbCfrfQ0CZwCeG3XwV6AYvo5cORUrvPoHkjVhtTGMbbpg X-MS-Exchange-Transport-CrossTenantHeadersStamped: BE1P281MB2898 Message-ID-Hash: PANGB7KZSCUCWUFMSJUJ4ZF5RHILMFLJ X-Message-ID-Hash: PANGB7KZSCUCWUFMSJUJ4ZF5RHILMFLJ X-MailFrom: stefan.kober@cyberus-technology.de X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Stefan Kober X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @cyberus-technology.de) X-ZM-MESSAGEID: 1756987944297116600 Content-Type: text/plain; charset="utf-8" Refactor BuildDiskJson to return a virJSONValue instead of adding the disk json to an json array. This makes the function reusable for hotplugging disks. On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_monitor.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index d369236183..f65cca648b 100644 --- a/src/ch/ch_monitor.c +++ b/src/ch/ch_monitor.c @@ -234,43 +234,41 @@ virCHMonitorBuildMemoryJson(virJSONValue *content, vi= rDomainDef *vmdef) return 0; } =20 -static int -virCHMonitorBuildDiskJson(virJSONValue *disks, virDomainDiskDef *diskdef) +static virJSONValue* +virCHMonitorBuildDiskJson(virDomainDiskDef *diskdef) { g_autoptr(virJSONValue) disk =3D virJSONValueNewObject(); =20 if (!diskdef->src) - return -1; + return NULL; =20 switch (diskdef->src->type) { case VIR_STORAGE_TYPE_FILE: if (!diskdef->src->path) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("Missing disk file path in domain")); - return -1; + return NULL; } if (!diskdef->info.alias) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Missing disk alias")); - return -1; + return NULL; } if (diskdef->bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) { virReportError(VIR_ERR_INVALID_ARG, _("Only virtio bus types are supported for '%1$= s'"), diskdef->src->path); - return -1; + return NULL; } if (virJSONValueObjectAppendString(disk, "path", diskdef->src->pat= h) < 0) - return -1; + return NULL; if (diskdef->src->readonly) { if (virJSONValueObjectAppendBoolean(disk, "readonly", true) < = 0) - return -1; + return NULL; } if (virJSONValueObjectAppendString(disk, "id", diskdef->info.alias= ) < 0) { - return -1; + return NULL; } - if (virJSONValueArrayAppend(disks, &disk) < 0) - return -1; =20 break; case VIR_STORAGE_TYPE_NONE: @@ -284,23 +282,26 @@ virCHMonitorBuildDiskJson(virJSONValue *disks, virDom= ainDiskDef *diskdef) case VIR_STORAGE_TYPE_LAST: default: virReportEnumRangeError(virStorageType, diskdef->src->type); - return -1; + return NULL; } =20 - return 0; + return g_steal_pointer(&disk); } =20 static int virCHMonitorBuildDisksJson(virJSONValue *content, virDomainDef *vmdef) { g_autoptr(virJSONValue) disks =3D NULL; + g_autoptr(virJSONValue) disk =3D NULL; size_t i; =20 if (vmdef->ndisks > 0) { disks =3D virJSONValueNewArray(); =20 for (i =3D 0; i < vmdef->ndisks; i++) { - if (virCHMonitorBuildDiskJson(disks, vmdef->disks[i]) < 0) + if ((disk =3D virCHMonitorBuildDiskJson(vmdef->disks[i])) =3D= =3D NULL) + return -1; + if (virJSONValueArrayAppend(disks, &disk) < 0) return -1; } if (virJSONValueObjectAppend(content, "disks", &disks) < 0) --=20 2.50.1