From nobody Fri May 16 03:32:56 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1498759471758984.8678611655521; Thu, 29 Jun 2017 11:04:31 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 78D24AB497; Thu, 29 Jun 2017 18:04:26 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3A2F617AD9; Thu, 29 Jun 2017 18:04:26 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id B8F663FAE2; Thu, 29 Jun 2017 18:04:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v5TI4OBk006756 for ; Thu, 29 Jun 2017 14:04:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id 7EAF617CC4; Thu, 29 Jun 2017 18:04:24 +0000 (UTC) Received: from inaba.usersys.redhat.com (unknown [10.43.2.82]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AE5354F6B3 for ; Thu, 29 Jun 2017 18:04:21 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 78D24AB497 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 78D24AB497 From: Andrea Bolognani To: libvir-list@redhat.com Date: Thu, 29 Jun 2017 20:04:02 +0200 Message-Id: <1498759443-10136-10-git-send-email-abologna@redhat.com> In-Reply-To: <1498759443-10136-1-git-send-email-abologna@redhat.com> References: <1498759443-10136-1-git-send-email-abologna@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 09/10] conf: Provide missing virDomain*DefNew() functions X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Thu, 29 Jun 2017 18:04:28 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Same as virDomainDeviceInfo itself, any struct that embeds it needs to be initialized properly before use; however, none of the structs in question even had a proper allocation function defined. Implement an allocation function for all structs embedding a virDomainDeviceInfo and use them instead of plain VIR_ALLOC() everywhere. Signed-off-by: Andrea Bolognani --- src/bhyve/bhyve_parse_command.c | 4 +- src/conf/domain_conf.c | 280 +++++++++++++++++++++++++++++++-----= ---- src/conf/domain_conf.h | 15 +++ src/libvirt_private.syms | 11 ++ src/openvz/openvz_conf.c | 2 +- src/qemu/qemu_command.c | 12 +- src/qemu/qemu_domain.c | 11 +- src/qemu/qemu_domain_address.c | 2 +- src/qemu/qemu_hotplug.c | 5 +- src/qemu/qemu_parse_command.c | 27 ++-- src/vbox/vbox_common.c | 12 +- src/vmx/vmx.c | 2 +- src/vz/vz_sdk.c | 6 +- src/xen/xen_driver.c | 2 +- src/xenapi/xenapi_driver.c | 2 +- src/xenconfig/xen_common.c | 2 +- src/xenconfig/xen_sxpr.c | 8 +- src/xenconfig/xen_xl.c | 2 +- src/xenconfig/xen_xm.c | 2 +- 19 files changed, 303 insertions(+), 104 deletions(-) diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_comman= d.c index fcaaed2..b9e8bc6 100644 --- a/src/bhyve/bhyve_parse_command.c +++ b/src/bhyve/bhyve_parse_command.c @@ -432,7 +432,7 @@ bhyveParsePCIDisk(virDomainDefPtr def, int idx =3D -1; virDomainDiskDefPtr disk =3D NULL; =20 - if (VIR_ALLOC(disk) < 0) + if (!(disk =3D virDomainDiskDefNew(NULL))) goto cleanup; if (VIR_ALLOC(disk->src) < 0) goto error; @@ -505,7 +505,7 @@ bhyveParsePCINet(virDomainDefPtr def, const char *separator =3D NULL; const char *mac =3D NULL; =20 - if (VIR_ALLOC(net) < 0) + if (!(net =3D virDomainNetDefNew())) goto cleanup; =20 /* As we only support interface type=3D'bridge' and cannot diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 11c4627..055fde9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1389,6 +1389,17 @@ void virDomainGraphicsDefFree(virDomainGraphicsDefPt= r def) VIR_FREE(def); } =20 +virDomainInputDefPtr +virDomainInputDefNew(void) +{ + virDomainInputDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainInputDefFree(virDomainInputDefPtr def) { if (!def) @@ -2021,6 +2032,17 @@ virDomainNetDefClear(virDomainNetDefPtr def) virNetDevVlanClear(&def->vlan); } =20 +virDomainNetDefPtr +virDomainNetDefNew(void) +{ + virDomainNetDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainNetDefFree(virDomainNetDefPtr def) { @@ -2248,6 +2270,17 @@ void virDomainChrDefFree(virDomainChrDefPtr def) VIR_FREE(def); } =20 +virDomainSmartcardDefPtr +virDomainSmartcardDefNew(void) +{ + virDomainSmartcardDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainSmartcardDefFree(virDomainSmartcardDefPtr def) { size_t i; @@ -2285,6 +2318,17 @@ void virDomainSoundCodecDefFree(virDomainSoundCodecD= efPtr def) VIR_FREE(def); } =20 +virDomainSoundDefPtr +virDomainSoundDefNew(void) +{ + virDomainSoundDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainSoundDefFree(virDomainSoundDefPtr def) { if (!def) @@ -2300,6 +2344,17 @@ void virDomainSoundDefFree(virDomainSoundDefPtr def) VIR_FREE(def); } =20 +virDomainMemballoonDefPtr +virDomainMemballoonDefNew(void) +{ + virDomainMemballoonDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainMemballoonDefFree(virDomainMemballoonDefPtr def) { if (!def) @@ -2311,6 +2366,17 @@ void virDomainMemballoonDefFree(virDomainMemballoonD= efPtr def) VIR_FREE(def); } =20 +virDomainNVRAMDefPtr +virDomainNVRAMDefNew(void) +{ + virDomainNVRAMDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainNVRAMDefFree(virDomainNVRAMDefPtr def) { if (!def) @@ -2321,6 +2387,17 @@ void virDomainNVRAMDefFree(virDomainNVRAMDefPtr def) VIR_FREE(def); } =20 +virDomainWatchdogDefPtr +virDomainWatchdogDefNew(void) +{ + virDomainWatchdogDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainWatchdogDefFree(virDomainWatchdogDefPtr def) { if (!def) @@ -2331,6 +2408,50 @@ void virDomainWatchdogDefFree(virDomainWatchdogDefPt= r def) VIR_FREE(def); } =20 +virDomainRNGDefPtr +virDomainRNGDefNew(void) +{ + virDomainRNGDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + +void +virDomainRNGDefFree(virDomainRNGDefPtr def) +{ + if (!def) + return; + + switch ((virDomainRNGBackend) def->backend) { + case VIR_DOMAIN_RNG_BACKEND_RANDOM: + VIR_FREE(def->source.file); + break; + case VIR_DOMAIN_RNG_BACKEND_EGD: + virDomainChrSourceDefFree(def->source.chardev); + break; + case VIR_DOMAIN_RNG_BACKEND_LAST: + break; + } + + virDomainDeviceInfoClear(&def->info); + VIR_FREE(def->virtio); + VIR_FREE(def); +} + +virDomainShmemDefPtr +virDomainShmemDefNew(void) +{ + virDomainShmemDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainShmemDefFree(virDomainShmemDefPtr def) { if (!def) @@ -2342,6 +2463,17 @@ void virDomainShmemDefFree(virDomainShmemDefPtr def) VIR_FREE(def); } =20 +virDomainVideoDefPtr +virDomainVideoDefNew(void) +{ + virDomainVideoDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainVideoDefFree(virDomainVideoDefPtr def) { if (!def) @@ -2457,6 +2589,17 @@ void virDomainHostdevDefClear(virDomainHostdevDefPtr= def) def->privateData =3D NULL; } =20 +virDomainTPMDefPtr +virDomainTPMDefNew(void) +{ + virDomainTPMDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainTPMDefFree(virDomainTPMDefPtr def) { if (!def) @@ -2489,6 +2632,17 @@ void virDomainHostdevDefFree(virDomainHostdevDefPtr = def) VIR_FREE(def); } =20 +virDomainHubDefPtr +virDomainHubDefNew(void) +{ + virDomainHubDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainHubDefFree(virDomainHubDefPtr def) { if (!def) @@ -2498,6 +2652,17 @@ void virDomainHubDefFree(virDomainHubDefPtr def) VIR_FREE(def); } =20 +virDomainRedirdevDefPtr +virDomainRedirdevDefNew(void) +{ + virDomainRedirdevDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainRedirdevDefFree(virDomainRedirdevDefPtr def) { if (!def) @@ -2523,6 +2688,17 @@ void virDomainRedirFilterDefFree(virDomainRedirFilte= rDefPtr def) VIR_FREE(def); } =20 +virDomainMemoryDefPtr +virDomainMemoryDefNew(void) +{ + virDomainMemoryDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainMemoryDefFree(virDomainMemoryDefPtr def) { if (!def) @@ -2733,6 +2909,17 @@ virDomainResourceDefFree(virDomainResourceDefPtr res= ource) VIR_FREE(resource); } =20 +virDomainPanicDefPtr +virDomainPanicDefNew(void) +{ + virDomainPanicDefPtr def; + + if (VIR_ALLOC(def) < 0) + return NULL; + + return def; +} + void virDomainPanicDefFree(virDomainPanicDefPtr panic) { @@ -9732,8 +9919,8 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt, xmlNodePtr oldnode =3D ctxt->node; int rv, val; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainNetDefNew())) + goto error; =20 ctxt->node =3D node; =20 @@ -11198,8 +11385,8 @@ virDomainSmartcardDefParseXML(virDomainXMLOptionPtr= xmlopt, virDomainSmartcardDefPtr def; size_t i; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainSmartcardDefNew())) + goto error; =20 mode =3D virXMLPropString(node, "mode"); if (mode =3D=3D NULL) { @@ -11344,8 +11531,8 @@ virDomainTPMDefParseXML(xmlNodePtr node, xmlNodePtr *backends =3D NULL; int nbackends; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainTPMDefNew())) + goto error; =20 model =3D virXMLPropString(node, "model"); if (model !=3D NULL && @@ -11425,8 +11612,8 @@ virDomainPanicDefParseXML(xmlNodePtr node, virDomainPanicDefPtr panic; char *model =3D NULL; =20 - if (VIR_ALLOC(panic) < 0) - return NULL; + if (!(panic =3D virDomainPanicDefNew())) + goto error; =20 if (virDomainDeviceInfoParseXML(node, NULL, &panic->info, flags) < 0) goto error; @@ -11462,8 +11649,8 @@ virDomainInputDefParseXML(const virDomainDef *dom, char *type =3D NULL; char *bus =3D NULL; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainInputDefNew())) + goto error; =20 ctxt->node =3D node; =20 @@ -11606,8 +11793,8 @@ virDomainHubDefParseXML(xmlNodePtr node, unsigned i= nt flags) virDomainHubDefPtr def; char *type =3D NULL; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainHubDefNew())) + goto error; =20 type =3D virXMLPropString(node, "type"); =20 @@ -12708,8 +12895,8 @@ virDomainSoundDefParseXML(xmlNodePtr node, virDomainSoundDefPtr def; xmlNodePtr save =3D ctxt->node; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainSoundDefNew())) + goto error; =20 ctxt->node =3D node; =20 @@ -12777,8 +12964,8 @@ virDomainWatchdogDefParseXML(xmlNodePtr node, char *action =3D NULL; virDomainWatchdogDefPtr def; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainWatchdogDefNew())) + goto error; =20 model =3D virXMLPropString(node, "model"); if (model =3D=3D NULL) { @@ -12835,8 +13022,8 @@ virDomainRNGDefParseXML(virDomainXMLOptionPtr xmlop= t, xmlNodePtr *backends =3D NULL; int nbackends; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainRNGDefNew())) + goto error; =20 if (!(model =3D virXMLPropString(node, "model"))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing RNG device mode= l")); @@ -12949,8 +13136,8 @@ virDomainMemballoonDefParseXML(xmlNodePtr node, xmlNodePtr save =3D ctxt->node; unsigned int period =3D 0; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainMemballoonDefNew())) + goto error; =20 model =3D virXMLPropString(node, "model"); if (model =3D=3D NULL) { @@ -13010,8 +13197,8 @@ virDomainNVRAMDefParseXML(xmlNodePtr node, { virDomainNVRAMDefPtr def; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainNVRAMDefNew())) + goto error; =20 if (virDomainDeviceInfoParseXML(node, NULL, &def->info, flags) < 0) goto error; @@ -13034,9 +13221,8 @@ virDomainShmemDefParseXML(xmlNodePtr node, xmlNodePtr save =3D ctxt->node; xmlNodePtr server =3D NULL; =20 - - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainShmemDefNew())) + goto error; =20 ctxt->node =3D node; =20 @@ -13550,8 +13736,8 @@ virDomainVideoDefParseXML(xmlNodePtr node, =20 ctxt->node =3D node; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainVideoDefNew())) + goto error; =20 cur =3D node->children; while (cur !=3D NULL) { @@ -13789,8 +13975,8 @@ virDomainRedirdevDefParseXML(virDomainXMLOptionPtr = xmlopt, char *bus =3D NULL, *type =3D NULL; int remaining; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainRedirdevDefNew())) + goto error; =20 if (!(def->source =3D virDomainChrSourceDefNew(xmlopt))) goto error; @@ -14255,8 +14441,8 @@ virDomainMemoryDefParseXML(xmlNodePtr memdevNode, =20 ctxt->node =3D memdevNode; =20 - if (VIR_ALLOC(def) < 0) - return NULL; + if (!(def =3D virDomainMemoryDefNew())) + goto error; =20 if (!(tmp =3D virXMLPropString(memdevNode, "model"))) { virReportError(VIR_ERR_XML_ERROR, "%s", @@ -16383,7 +16569,7 @@ virDomainDefAddController(virDomainDefPtr def, int = type, int idx, int model) cont->model =3D model; =20 if (VIR_APPEND_ELEMENT_COPY(def->controllers, def->ncontrollers, cont)= < 0) { - VIR_FREE(cont); + virDomainControllerDefFree(cont); return NULL; } =20 @@ -16477,14 +16663,14 @@ virDomainDefMaybeAddInput(virDomainDefPtr def, return 0; } =20 - if (VIR_ALLOC(input) < 0) + if (!(input =3D virDomainInputDefNew())) return -1; =20 input->type =3D type; input->bus =3D bus; =20 if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) { - VIR_FREE(input); + virDomainInputDefFree(input); return -1; } =20 @@ -20827,14 +21013,14 @@ static int virDomainDefAddImplicitVideo(virDomainDefPtr def) { int ret =3D -1; - virDomainVideoDefPtr video =3D NULL; + virDomainVideoDefPtr video; =20 /* For backwards compatibility, if no