From nobody Mon May 13 14:33:28 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1632158516; cv=none; d=zohomail.com; s=zohoarc; b=M8efr7VVidx1TUVmvd6o3xJa+jbfFG7yOg+BAFl3ALAmfzpvbXgFSTT/pA28QklFKnDcE1XEL6FGaADqI0iahC+rs7qoogC0bmICXWesBNDb1RMSaTZB0Z0Nv/l/kjEX6OEouS2Ftcbe+oViTrWckfCNx3TwLeIbjWVGlaYUxFA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1632158516; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=R3q/IYOO3ZIRfkvLpcqKMjPB9ZT7OW3AdG+SLzK1w8g=; b=h1XfqGsYxq1KDC/o3E2fQl34bNbKPIZXLUaBKDFv49xr/fctr/IgLM1Ea/hI7QbDfjq9WeItIoKu+oCbXxPCG76xIGbmD2C9yCxD4ZHYJY7YRTZ4K10LQWQeXQmxE/GTGdbwsG9IOpsqTNQ8MDK82gG7WjRvwnARW5SPM3x7jTs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1632158516016702.3792164303261; Mon, 20 Sep 2021 10:21:56 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-278-nePDIKoMO0mTua9evGh7Fg-1; Mon, 20 Sep 2021 13:21:53 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D6AEC802936; Mon, 20 Sep 2021 17:21:47 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B67DB60C4A; Mon, 20 Sep 2021 17:21:47 +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 70E6F1806D01; Mon, 20 Sep 2021 17:21:46 +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 18KHLigb028975 for ; Mon, 20 Sep 2021 13:21:44 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9ECE95DA2D; Mon, 20 Sep 2021 17:21:44 +0000 (UTC) Received: from work.speedport.ip (unknown [10.39.194.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA12F5D9DC; Mon, 20 Sep 2021 17:21:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632158514; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=R3q/IYOO3ZIRfkvLpcqKMjPB9ZT7OW3AdG+SLzK1w8g=; b=BFigCWT5xGAo0NSPTDfs2WS1KTO90kG2UTDQo5z0yk7wgBUpCaJOA1BynmOCMJ7sqZ4r9w yIAnMCBY2iIGJYgVNlTI2Bg8Rt88OiikjY4fjK5Y9juv0CCukxCeH74sxuUDtxXOkqbXAm aGChYY1zB7WNspNHayHwxNL65RHT0Ww= X-MC-Unique: nePDIKoMO0mTua9evGh7Fg-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 1/2] virDomainDefParseXML: Use automatic memory management Date: Mon, 20 Sep 2021 19:21:27 +0200 Message-Id: <20210920172128.44668-2-twiederh@redhat.com> In-Reply-To: <20210920172128.44668-1-twiederh@redhat.com> References: <20210920172128.44668-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1632158517346100003 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/conf/domain_conf.c | 208 ++++++++++++++++++++--------------------- 1 file changed, 102 insertions(+), 106 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6c32609431..cdbc66d9fc 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -19518,27 +19518,27 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, xmlNodePtr node =3D NULL; size_t i, j; int n; - virDomainDef *def; bool uuid_generated =3D false; bool usb_none =3D false; g_autofree xmlNodePtr *nodes =3D NULL; g_autofree char *tmp =3D NULL; + g_autoptr(virDomainDef) def =3D NULL; =20 if (!(def =3D virDomainDefNew(xmlopt))) return NULL; =20 if (virDomainDefParseIDs(def, ctxt, flags, &uuid_generated) < 0) - goto error; + return NULL; =20 if (virDomainDefParseCaps(def, ctxt, xmlopt) < 0) - goto error; + return NULL; =20 /* Extract short description of domain (title) */ def->title =3D virXPathString("string(./title[1])", ctxt); if (def->title && strchr(def->title, '\n')) { virReportError(VIR_ERR_XML_ERROR, "%s", _("Domain title can't contain newlines")); - goto error; + return NULL; } =20 /* Extract documentation if present */ @@ -19548,40 +19548,40 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, * late, so devices can refer to this for defaults */ if (!(flags & VIR_DOMAIN_DEF_PARSE_SKIP_SECLABEL)) { if (virSecurityLabelDefsParseXML(def, ctxt, xmlopt, flags) =3D=3D = -1) - goto error; + return NULL; } =20 if (virDomainDefParseMemory(def, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainDefTunablesParse(def, ctxt, xmlopt, flags) < 0) - goto error; + return NULL; =20 if (virCPUDefParseXML(ctxt, "./cpu[1]", VIR_CPU_TYPE_GUEST, &def->cpu, false) < 0) - goto error; + return NULL; =20 if (virDomainNumaDefParseXML(def->numa, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainNumaGetCPUCountTotal(def->numa) > virDomainDefGetVcpusMax= (def)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Number of CPUs in exceeds the" " count")); - goto error; + return NULL; } =20 if (virDomainNumaGetMaxCPUID(def->numa) >=3D virDomainDefGetVcpusMax(d= ef)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("CPU IDs in exceed the count")); - goto error; + return NULL; } =20 if (virDomainNumatuneParseXML(def->numa, def->placement_mode =3D=3D VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainNumatuneHasPlacementAuto(def->numa) && !def->cpumask && !virDomainDefHasVcpuPin(def) && @@ -19592,38 +19592,38 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, if ((n =3D virXPathNodeSet("./resource", ctxt, &nodes)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot extract resource nodes")); - goto error; + return NULL; } =20 if (n > 1) { virReportError(VIR_ERR_XML_ERROR, "%s", _("only one resource element is supported")); - goto error; + return NULL; } =20 if (n && !(def->resource =3D virDomainResourceDefParse(nodes[0], ctxt))) - goto error; + return NULL; VIR_FREE(nodes); =20 if (virDomainFeaturesDefParse(def, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainDefLifecycleParse(def, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainPerfDefParseXML(def, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainDefClockParse(def, ctxt) < 0) - goto error; + return NULL; =20 if (virDomainDefParseBootOptions(def, ctxt) < 0) - goto error; + return NULL; =20 /* analysis of the disk devices */ if ((n =3D virXPathNodeSet("./devices/disk", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 for (i =3D 0; i < n; i++) { virDomainDiskDef *disk =3D virDomainDiskDefParseXML(xmlopt, @@ -19631,27 +19631,27 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!disk) - goto error; + return NULL; =20 virDomainDiskInsert(def, disk); } VIR_FREE(nodes); =20 if (virDomainDefControllersParse(def, ctxt, xmlopt, flags, &usb_none) = < 0) - goto error; + return NULL; =20 /* analysis of the resource leases */ if ((n =3D virXPathNodeSet("./devices/lease", ctxt, &nodes)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot extract device leases")); - goto error; + return NULL; } if (n) def->leases =3D g_new0(virDomainLeaseDef *, n); for (i =3D 0; i < n; i++) { virDomainLeaseDef *lease =3D virDomainLeaseDefParseXML(nodes[i], c= txt); if (!lease) - goto error; + return NULL; =20 def->leases[def->nleases++] =3D lease; } @@ -19659,7 +19659,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the filesystems */ if ((n =3D virXPathNodeSet("./devices/filesystem", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->fss =3D g_new0(virDomainFSDef *, n); for (i =3D 0; i < n; i++) { @@ -19668,7 +19668,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!fs) - goto error; + return NULL; =20 def->fss[def->nfss++] =3D fs; } @@ -19676,7 +19676,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the network devices */ if ((n =3D virXPathNodeSet("./devices/interface", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->nets =3D g_new0(virDomainNetDef *, n); for (i =3D 0; i < n; i++) { @@ -19685,7 +19685,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!net) - goto error; + return NULL; =20 def->nets[def->nnets++] =3D net; =20 @@ -19695,7 +19695,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, */ if (virDomainNetGetActualType(net) =3D=3D VIR_DOMAIN_NET_TYPE_HOST= DEV && virDomainHostdevInsert(def, virDomainNetGetActualHostdev(net))= < 0) { - goto error; + return NULL; } } VIR_FREE(nodes); @@ -19703,7 +19703,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the smartcard devices */ if ((n =3D virXPathNodeSet("./devices/smartcard", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->smartcards =3D g_new0(virDomainSmartcardDef *, n); =20 @@ -19713,7 +19713,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!card) - goto error; + return NULL; =20 def->smartcards[def->nsmartcards++] =3D card; } @@ -19722,7 +19722,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the character devices */ if ((n =3D virXPathNodeSet("./devices/parallel", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->parallels =3D g_new0(virDomainChrDef *, n); =20 @@ -19732,7 +19732,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, nodes[i], flags); if (!chr) - goto error; + return NULL; =20 if (chr->target.port =3D=3D -1) { int maxport =3D -1; @@ -19747,7 +19747,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./devices/serial", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n) def->serials =3D g_new0(virDomainChrDef *, n); @@ -19758,7 +19758,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, nodes[i], flags); if (!chr) - goto error; + return NULL; =20 if (chr->target.port =3D=3D -1) { int maxport =3D -1; @@ -19775,7 +19775,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, if ((n =3D virXPathNodeSet("./devices/console", ctxt, &nodes)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot extract console devices")); - goto error; + return NULL; } if (n) def->consoles =3D g_new0(virDomainChrDef *, n); @@ -19786,7 +19786,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, nodes[i], flags); if (!chr) - goto error; + return NULL; =20 chr->target.port =3D i; def->consoles[def->nconsoles++] =3D chr; @@ -19794,7 +19794,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./devices/channel", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->channels =3D g_new0(virDomainChrDef *, n); =20 @@ -19804,7 +19804,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, nodes[i], flags); if (!chr) - goto error; + return NULL; =20 def->channels[def->nchannels++] =3D chr; } @@ -19813,7 +19813,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the input devices */ if ((n =3D virXPathNodeSet("./devices/input", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->inputs =3D g_new0(virDomainInputDef *, n); =20 @@ -19824,7 +19824,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!input) - goto error; + return NULL; =20 /* Check if USB bus is required */ if (input->bus =3D=3D VIR_DOMAIN_INPUT_BUS_USB && usb_none) { @@ -19832,7 +19832,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Can't add USB input device. " "USB bus is disabled")); - goto error; + return NULL; } =20 def->inputs[def->ninputs++] =3D input; @@ -19841,7 +19841,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the graphics devices */ if ((n =3D virXPathNodeSet("./devices/graphics", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->graphics =3D g_new0(virDomainGraphicsDef *, n); for (i =3D 0; i < n; i++) { @@ -19850,7 +19850,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flag= s); if (!graphics) - goto error; + return NULL; =20 def->graphics[def->ngraphics++] =3D graphics; } @@ -19858,7 +19858,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the sound devices */ if ((n =3D virXPathNodeSet("./devices/sound", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->sounds =3D g_new0(virDomainSoundDef *, n); for (i =3D 0; i < n; i++) { @@ -19867,7 +19867,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!sound) - goto error; + return NULL; =20 def->sounds[def->nsounds++] =3D sound; } @@ -19875,7 +19875,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the audio devices */ if ((n =3D virXPathNodeSet("./devices/audio", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->audios =3D g_new0(virDomainAudioDef *, n); for (i =3D 0; i < n; i++) { @@ -19883,7 +19883,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, nodes[i], ctxt); if (!audio) - goto error; + return NULL; =20 def->audios[def->naudios++] =3D audio; } @@ -19891,7 +19891,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the video devices */ if ((n =3D virXPathNodeSet("./devices/video", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->videos =3D g_new0(virDomainVideoDef *, n); for (i =3D 0; i < n; i++) { @@ -19900,7 +19900,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 if (!(video =3D virDomainVideoDefParseXML(xmlopt, nodes[i], ctxt, flags))) - goto error; + return NULL; =20 if (video->primary) { insertAt =3D 0; @@ -19910,7 +19910,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, insertAt, def->nvideos, video) < 0) { - goto error; + return NULL; } } =20 @@ -19918,7 +19918,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the host devices */ if ((n =3D virXPathNodeSet("./devices/hostdev", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n > 0) VIR_REALLOC_N(def->hostdevs, def->nhostdevs + n); =20 @@ -19928,7 +19928,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, hostdev =3D virDomainHostdevDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!hostdev) - goto error; + return NULL; =20 if (hostdev->source.subsys.type =3D=3D VIR_DOMAIN_HOSTDEV_SUBSYS_T= YPE_USB && usb_none) { @@ -19936,7 +19936,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, _("Can't add host USB device: " "USB is disabled in this host")); virDomainHostdevDefFree(hostdev); - goto error; + return NULL; } =20 def->hostdevs[def->nhostdevs++] =3D hostdev; @@ -19948,25 +19948,25 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, * load the controller during hostdev hotplug. */ if (virDomainDefMaybeAddHostdevSCSIcontroller(def) < 0) - goto error; + return NULL; } VIR_FREE(nodes); =20 /* analysis of the watchdog devices */ def->watchdog =3D NULL; if ((n =3D virXPathNodeSet("./devices/watchdog", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n > 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("only a single watchdog device is supported")); - goto error; + return NULL; } if (n > 0) { virDomainWatchdogDef *watchdog; =20 watchdog =3D virDomainWatchdogDefParseXML(xmlopt, nodes[0], ctxt, = flags); if (!watchdog) - goto error; + return NULL; =20 def->watchdog =3D watchdog; VIR_FREE(nodes); @@ -19975,18 +19975,18 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, /* analysis of the memballoon devices */ def->memballoon =3D NULL; if ((n =3D virXPathNodeSet("./devices/memballoon", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n > 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("only a single memory balloon device is supported= ")); - goto error; + return NULL; } if (n > 0) { virDomainMemballoonDef *memballoon; =20 memballoon =3D virDomainMemballoonDefParseXML(xmlopt, nodes[0], ct= xt, flags); if (!memballoon) - goto error; + return NULL; =20 def->memballoon =3D memballoon; VIR_FREE(nodes); @@ -19994,14 +19994,14 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* Parse the RNG devices */ if ((n =3D virXPathNodeSet("./devices/rng", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->rngs =3D g_new0(virDomainRNGDef *, n); for (i =3D 0; i < n; i++) { virDomainRNGDef *rng =3D virDomainRNGDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!rng) - goto error; + return NULL; =20 def->rngs[def->nrngs++] =3D rng; } @@ -20009,13 +20009,13 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* Parse the TPM devices */ if ((n =3D virXPathNodeSet("./devices/tpm", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n > 2) { virReportError(VIR_ERR_XML_ERROR, "%s", _("a maximum of two TPM devices is supported, one o= f " "them being a TPM Proxy device")); - goto error; + return NULL; } =20 if (n) @@ -20025,31 +20025,31 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, virDomainTPMDef *tpm =3D virDomainTPMDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!tpm) - goto error; + return NULL; =20 def->tpms[def->ntpms++] =3D tpm; } VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./devices/nvram", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n > 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("only a single nvram device is supported")); - goto error; + return NULL; } else if (n =3D=3D 1) { virDomainNVRAMDef *nvram =3D virDomainNVRAMDefParseXML(xmlopt, nodes[0], ctxt, flags); if (!nvram) - goto error; + return NULL; def->nvram =3D nvram; VIR_FREE(nodes); } =20 /* analysis of the hub devices */ if ((n =3D virXPathNodeSet("./devices/hub", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->hubs =3D g_new0(virDomainHubDef *, n); for (i =3D 0; i < n; i++) { @@ -20057,14 +20057,14 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 hub =3D virDomainHubDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!hub) - goto error; + return NULL; =20 if (hub->type =3D=3D VIR_DOMAIN_HUB_TYPE_USB && usb_none) { virDomainHubDefFree(hub); virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("Can't add USB hub: " "USB is disabled for this domain")); - goto error; + return NULL; } =20 def->hubs[def->nhubs++] =3D hub; @@ -20073,14 +20073,14 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the redirected devices */ if ((n =3D virXPathNodeSet("./devices/redirdev", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->redirdevs =3D g_new0(virDomainRedirdevDef *, n); for (i =3D 0; i < n; i++) { virDomainRedirdevDef *redirdev =3D virDomainRedirdevDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!redirdev) - goto error; + return NULL; =20 def->redirdevs[def->nredirdevs++] =3D redirdev; } @@ -20088,18 +20088,18 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the redirection filter rules */ if ((n =3D virXPathNodeSet("./devices/redirfilter", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n > 1) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("only one set of redirection filter rule is suppo= rted")); - goto error; + return NULL; } =20 if (n) { virDomainRedirFilterDef *redirfilter =3D virDomainRedirFilterDefParseXML(nodes[0], ctxt); if (!redirfilter) - goto error; + return NULL; =20 def->redirfilter =3D redirfilter; } @@ -20107,7 +20107,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the panic devices */ if ((n =3D virXPathNodeSet("./devices/panic", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->panics =3D g_new0(virDomainPanicDef *, n); for (i =3D 0; i < n; i++) { @@ -20115,7 +20115,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 panic =3D virDomainPanicDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!panic) - goto error; + return NULL; =20 def->panics[def->npanics++] =3D panic; } @@ -20123,7 +20123,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 /* analysis of the shmem devices */ if ((n =3D virXPathNodeSet("./devices/shmem", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->shmems =3D g_new0(virDomainShmemDef *, n); =20 @@ -20133,7 +20133,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt->node =3D nodes[i]; shmem =3D virDomainShmemDefParseXML(xmlopt, nodes[i], ctxt, flags); if (!shmem) - goto error; + return NULL; =20 def->shmems[def->nshmems++] =3D shmem; } @@ -20144,12 +20144,12 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, if ((node =3D virXPathNode("./launchSecurity", ctxt)) !=3D NULL) { def->sec =3D virDomainSecDefParseXML(node, ctxt); if (!def->sec) - goto error; + return NULL; } =20 /* analysis of memory devices */ if ((n =3D virXPathNodeSet("./devices/memory", ctxt, &nodes)) < 0) - goto error; + return NULL; if (n) def->mems =3D g_new0(virDomainMemoryDef *, n); =20 @@ -20159,70 +20159,70 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, ctxt, flags); if (!mem) - goto error; + return NULL; =20 def->mems[def->nmems++] =3D mem; } VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./devices/iommu", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n > 1) { virReportError(VIR_ERR_XML_ERROR, "%s", _("only a single IOMMU device is supported")); - goto error; + return NULL; } =20 if (n > 0) { if (!(def->iommu =3D virDomainIOMMUDefParseXML(nodes[0], ctxt))) - goto error; + return NULL; } VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./devices/vsock", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n > 1) { virReportError(VIR_ERR_XML_ERROR, "%s", _("only a single vsock device is supported")); - goto error; + return NULL; } =20 if (n > 0) { if (!(def->vsock =3D virDomainVsockDefParseXML(xmlopt, nodes[0], ctxt, flags))) - goto error; + return NULL; } VIR_FREE(nodes); =20 /* analysis of the user namespace mapping */ if ((n =3D virXPathNodeSet("./idmap/uid", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n) { def->idmap.uidmap =3D virDomainIdmapDefParseXML(ctxt, nodes, n); if (!def->idmap.uidmap) - goto error; + return NULL; =20 def->idmap.nuidmap =3D n; } VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./idmap/gid", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 if (n) { def->idmap.gidmap =3D virDomainIdmapDefParseXML(ctxt, nodes, n); if (!def->idmap.gidmap) - goto error; + return NULL; =20 def->idmap.ngidmap =3D n; } VIR_FREE(nodes); =20 if ((n =3D virXPathNodeSet("./sysinfo", ctxt, &nodes)) < 0) - goto error; + return NULL; =20 def->sysinfo =3D g_new0(virSysinfoDef *, n); =20 @@ -20231,7 +20231,7 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, def->uuid, uuid_genera= ted); =20 if (!sysinfo) - goto error; + return NULL; =20 def->sysinfo[def->nsysinfo++] =3D sysinfo; } @@ -20243,13 +20243,13 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, if ((mode =3D virDomainSmbiosModeTypeFromString(tmp)) < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown smbios mode '%s'"), tmp); - goto error; + return NULL; } def->os.smbios_mode =3D mode; } =20 if (virDomainKeyWrapDefParseXML(def, ctxt) < 0) - goto error; + return NULL; =20 /* Extract custom metadata */ if ((node =3D virXPathNode("./metadata[1]", ctxt)) !=3D NULL) @@ -20262,16 +20262,12 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, =20 if (def->ns.parse) { if (virXMLNamespaceRegister(ctxt, &def->ns) < 0) - goto error; + return NULL; if ((def->ns.parse)(ctxt, &def->namespaceData) < 0) - goto error; + return NULL; } =20 - return def; - - error: - virDomainDefFree(def); - return NULL; + return g_steal_pointer(&def); } =20 =20 --=20 2.31.1 From nobody Mon May 13 14:33:28 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1632158593; cv=none; d=zohomail.com; s=zohoarc; b=gfPH9gs6s2ShbWpdOMYSw1rZbVi8pQrsYxnrlAvITEibTaDNw9OVvxzju6WgUGfiakCoOrpY6urSRlScfzNdDwO4ZgTHvPC10mW53I43bRow++85gC55xET5zmDKH2FNx7NMsW/doI4WZ1OMfyN3tF8lQEN8/m5dYKXJE9cZk70= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1632158593; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zoYvpnE5CozUBr9uPz4zv5M+ITiAV1SHJt/H3tahqog=; b=VWnBBnqkJh1J4BU4+adSJ4O+hkmulN+htp5B0iqMMqASLjIZgneMMYTCGwIZTeS3Dnp02mZZBy8R5weJiQ3lWwZnM1I54PKFMkzn0hsI+6uM4SeMbIPaaWIVhh92xI6qPzxrmjKGD7ws8L8AvHscbOdLN9hJUQKhs/KwF6T1YLM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1632158593528384.3829502458633; Mon, 20 Sep 2021 10:23:13 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-210-IY7W6jpxMSGOM5U3agJU-w-1; Mon, 20 Sep 2021 13:21:57 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 70C8D104FC11; Mon, 20 Sep 2021 17:21:52 +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 50B9210016FB; Mon, 20 Sep 2021 17:21:52 +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 192BA4EA2A; Mon, 20 Sep 2021 17:21:52 +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 18KHLkfr028988 for ; Mon, 20 Sep 2021 13:21:46 -0400 Received: by smtp.corp.redhat.com (Postfix) id 58A595D9DC; Mon, 20 Sep 2021 17:21:46 +0000 (UTC) Received: from work.speedport.ip (unknown [10.39.194.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7F1DA5DA2D; Mon, 20 Sep 2021 17:21:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1632158592; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=zoYvpnE5CozUBr9uPz4zv5M+ITiAV1SHJt/H3tahqog=; b=MlgXCLCUzDhSMLUy5aRwgDg7rScOkto/DMpk4rTZt/Gd7dG7fnjQzOQvJEEC53DLxMlHdF gB2J/mvz2h9mccHNS2WyzArr+V7CTggge/ELatbv1+frPYYGLu3CagH0xgsCnxA737IyLF WjtOqqjhMn0PGKdRA8mpqJr+3/shZl8= X-MC-Unique: IY7W6jpxMSGOM5U3agJU-w-1 From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 2/2] virNWFilterRuleDefFixup: Replace macro with function Date: Mon, 20 Sep 2021 19:21:28 +0200 Message-Id: <20210920172128.44668-3-twiederh@redhat.com> In-Reply-To: <20210920172128.44668-1-twiederh@redhat.com> References: <20210920172128.44668-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Cc: Tim Wiederhake 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1632158595686100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/conf/nwfilter_conf.c | 284 ++++++++++++++++++++------------------- 1 file changed, 143 insertions(+), 141 deletions(-) diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index a3109962af..4c4e31d5cd 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2187,71 +2187,74 @@ virNWFilterRuleValidate(virNWFilterRuleDef *rule) =20 =20 static void -virNWFilterRuleDefFixup(virNWFilterRuleDef *rule) +copy_neg_sign(nwItemDesc *to, const nwItemDesc *from) { -#define COPY_NEG_SIGN(A, B) \ - (A).flags =3D ((A).flags & ~NWFILTER_ENTRY_ITEM_FLAG_IS_NEG) | \ - ((B).flags & NWFILTER_ENTRY_ITEM_FLAG_IS_NEG); + to->flags =3D (to->flags & ~NWFILTER_ENTRY_ITEM_FLAG_IS_NEG) | + (from->flags & NWFILTER_ENTRY_ITEM_FLAG_IS_NEG); +} =20 +static void +virNWFilterRuleDefFixup(virNWFilterRuleDef *rule) +{ switch (rule->prtclType) { case VIR_NWFILTER_RULE_PROTOCOL_MAC: - COPY_NEG_SIGN(rule->p.ethHdrFilter.ethHdr.dataSrcMACMask, - rule->p.ethHdrFilter.ethHdr.dataSrcMACAddr); - COPY_NEG_SIGN(rule->p.ethHdrFilter.ethHdr.dataDstMACMask, - rule->p.ethHdrFilter.ethHdr.dataDstMACAddr); + copy_neg_sign(&rule->p.ethHdrFilter.ethHdr.dataSrcMACMask, + &rule->p.ethHdrFilter.ethHdr.dataSrcMACAddr); + copy_neg_sign(&rule->p.ethHdrFilter.ethHdr.dataDstMACMask, + &rule->p.ethHdrFilter.ethHdr.dataDstMACAddr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_VLAN: - COPY_NEG_SIGN(rule->p.vlanHdrFilter.ethHdr.dataSrcMACMask, - rule->p.vlanHdrFilter.ethHdr.dataSrcMACAddr); - COPY_NEG_SIGN(rule->p.vlanHdrFilter.ethHdr.dataDstMACMask, - rule->p.vlanHdrFilter.ethHdr.dataDstMACAddr); + copy_neg_sign(&rule->p.vlanHdrFilter.ethHdr.dataSrcMACMask, + &rule->p.vlanHdrFilter.ethHdr.dataSrcMACAddr); + copy_neg_sign(&rule->p.vlanHdrFilter.ethHdr.dataDstMACMask, + &rule->p.vlanHdrFilter.ethHdr.dataDstMACAddr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_STP: - COPY_NEG_SIGN(rule->p.stpHdrFilter.ethHdr.dataSrcMACMask, - rule->p.stpHdrFilter.ethHdr.dataSrcMACAddr); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataRootPriHi, - rule->p.stpHdrFilter.dataRootPri); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataRootAddrMask, - rule->p.stpHdrFilter.dataRootAddr); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataRootCostHi, - rule->p.stpHdrFilter.dataRootCost); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataSndrPrioHi, - rule->p.stpHdrFilter.dataSndrPrio); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataSndrAddrMask, - rule->p.stpHdrFilter.dataSndrAddr); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataPortHi, - rule->p.stpHdrFilter.dataPort); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataAgeHi, - rule->p.stpHdrFilter.dataAge); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataMaxAgeHi, - rule->p.stpHdrFilter.dataMaxAge); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataHelloTimeHi, - rule->p.stpHdrFilter.dataHelloTime); - COPY_NEG_SIGN(rule->p.stpHdrFilter.dataFwdDelayHi, - rule->p.stpHdrFilter.dataFwdDelay); + copy_neg_sign(&rule->p.stpHdrFilter.ethHdr.dataSrcMACMask, + &rule->p.stpHdrFilter.ethHdr.dataSrcMACAddr); + copy_neg_sign(&rule->p.stpHdrFilter.dataRootPriHi, + &rule->p.stpHdrFilter.dataRootPri); + copy_neg_sign(&rule->p.stpHdrFilter.dataRootAddrMask, + &rule->p.stpHdrFilter.dataRootAddr); + copy_neg_sign(&rule->p.stpHdrFilter.dataRootCostHi, + &rule->p.stpHdrFilter.dataRootCost); + copy_neg_sign(&rule->p.stpHdrFilter.dataSndrPrioHi, + &rule->p.stpHdrFilter.dataSndrPrio); + copy_neg_sign(&rule->p.stpHdrFilter.dataSndrAddrMask, + &rule->p.stpHdrFilter.dataSndrAddr); + copy_neg_sign(&rule->p.stpHdrFilter.dataPortHi, + &rule->p.stpHdrFilter.dataPort); + copy_neg_sign(&rule->p.stpHdrFilter.dataAgeHi, + &rule->p.stpHdrFilter.dataAge); + copy_neg_sign(&rule->p.stpHdrFilter.dataMaxAgeHi, + &rule->p.stpHdrFilter.dataMaxAge); + copy_neg_sign(&rule->p.stpHdrFilter.dataHelloTimeHi, + &rule->p.stpHdrFilter.dataHelloTime); + copy_neg_sign(&rule->p.stpHdrFilter.dataFwdDelayHi, + &rule->p.stpHdrFilter.dataFwdDelay); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_IP: - COPY_NEG_SIGN(rule->p.ipHdrFilter.ipHdr.dataSrcIPMask, - rule->p.ipHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.ipHdrFilter.ipHdr.dataDstIPMask, - rule->p.ipHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.ipHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.ipHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.ipHdrFilter.ipHdr.dataDstIPMask, + &rule->p.ipHdrFilter.ipHdr.dataDstIPAddr); virNWFilterRuleDefFixupIPSet(&rule->p.ipHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_IPV6: - COPY_NEG_SIGN(rule->p.ipv6HdrFilter.ipHdr.dataSrcIPMask, - rule->p.ipv6HdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.ipv6HdrFilter.ipHdr.dataDstIPMask, - rule->p.ipv6HdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.ipv6HdrFilter.dataICMPTypeEnd, - rule->p.ipv6HdrFilter.dataICMPTypeStart); - COPY_NEG_SIGN(rule->p.ipv6HdrFilter.dataICMPCodeStart, - rule->p.ipv6HdrFilter.dataICMPTypeStart); - COPY_NEG_SIGN(rule->p.ipv6HdrFilter.dataICMPCodeEnd, - rule->p.ipv6HdrFilter.dataICMPTypeStart); + copy_neg_sign(&rule->p.ipv6HdrFilter.ipHdr.dataSrcIPMask, + &rule->p.ipv6HdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.ipv6HdrFilter.ipHdr.dataDstIPMask, + &rule->p.ipv6HdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.ipv6HdrFilter.dataICMPTypeEnd, + &rule->p.ipv6HdrFilter.dataICMPTypeStart); + copy_neg_sign(&rule->p.ipv6HdrFilter.dataICMPCodeStart, + &rule->p.ipv6HdrFilter.dataICMPTypeStart); + copy_neg_sign(&rule->p.ipv6HdrFilter.dataICMPCodeEnd, + &rule->p.ipv6HdrFilter.dataICMPTypeStart); virNWFilterRuleDefFixupIPSet(&rule->p.ipv6HdrFilter.ipHdr); break; =20 @@ -2262,143 +2265,142 @@ virNWFilterRuleDefFixup(virNWFilterRuleDef *rule) =20 case VIR_NWFILTER_RULE_PROTOCOL_TCP: case VIR_NWFILTER_RULE_PROTOCOL_TCPoIPV6: - COPY_NEG_SIGN(rule->p.tcpHdrFilter.ipHdr.dataSrcIPMask, - rule->p.tcpHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.ipHdr.dataDstIPMask, - rule->p.tcpHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.ipHdr.dataSrcIPTo, - rule->p.tcpHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.ipHdr.dataDstIPTo, - rule->p.tcpHdrFilter.ipHdr.dataDstIPFrom); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.portData.dataSrcPortEnd, - rule->p.tcpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.portData.dataDstPortStart, - rule->p.tcpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.tcpHdrFilter.portData.dataDstPortEnd, - rule->p.tcpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.tcpHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.tcpHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.tcpHdrFilter.ipHdr.dataDstIPMask, + &rule->p.tcpHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.tcpHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.tcpHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.tcpHdrFilter.ipHdr.dataDstIPTo, + &rule->p.tcpHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.tcpHdrFilter.portData.dataSrcPortEnd, + &rule->p.tcpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.tcpHdrFilter.portData.dataDstPortStart, + &rule->p.tcpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.tcpHdrFilter.portData.dataDstPortEnd, + &rule->p.tcpHdrFilter.portData.dataSrcPortStart); virNWFilterRuleDefFixupIPSet(&rule->p.tcpHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_UDP: case VIR_NWFILTER_RULE_PROTOCOL_UDPoIPV6: - COPY_NEG_SIGN(rule->p.udpHdrFilter.ipHdr.dataSrcIPMask, - rule->p.udpHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.udpHdrFilter.ipHdr.dataDstIPMask, - rule->p.udpHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.udpHdrFilter.ipHdr.dataSrcIPTo, - rule->p.udpHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.udpHdrFilter.ipHdr.dataDstIPTo, - rule->p.udpHdrFilter.ipHdr.dataDstIPFrom); - COPY_NEG_SIGN(rule->p.udpHdrFilter.portData.dataSrcPortEnd, - rule->p.udpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.udpHdrFilter.portData.dataDstPortStart, - rule->p.udpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.udpHdrFilter.portData.dataDstPortEnd, - rule->p.udpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.udpHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.udpHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.udpHdrFilter.ipHdr.dataDstIPMask, + &rule->p.udpHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.udpHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.udpHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.udpHdrFilter.ipHdr.dataDstIPTo, + &rule->p.udpHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.udpHdrFilter.portData.dataSrcPortEnd, + &rule->p.udpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.udpHdrFilter.portData.dataDstPortStart, + &rule->p.udpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.udpHdrFilter.portData.dataDstPortEnd, + &rule->p.udpHdrFilter.portData.dataSrcPortStart); virNWFilterRuleDefFixupIPSet(&rule->p.udpHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_UDPLITE: case VIR_NWFILTER_RULE_PROTOCOL_UDPLITEoIPV6: - COPY_NEG_SIGN(rule->p.udpliteHdrFilter.ipHdr.dataSrcIPMask, - rule->p.udpliteHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.udpliteHdrFilter.ipHdr.dataDstIPMask, - rule->p.udpliteHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.udpliteHdrFilter.ipHdr.dataSrcIPTo, - rule->p.udpliteHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.udpliteHdrFilter.ipHdr.dataDstIPTo, - rule->p.udpliteHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.udpliteHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.udpliteHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.udpliteHdrFilter.ipHdr.dataDstIPMask, + &rule->p.udpliteHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.udpliteHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.udpliteHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.udpliteHdrFilter.ipHdr.dataDstIPTo, + &rule->p.udpliteHdrFilter.ipHdr.dataDstIPFrom); virNWFilterRuleDefFixupIPSet(&rule->p.udpliteHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_ESP: case VIR_NWFILTER_RULE_PROTOCOL_ESPoIPV6: - COPY_NEG_SIGN(rule->p.espHdrFilter.ipHdr.dataSrcIPMask, - rule->p.espHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.espHdrFilter.ipHdr.dataDstIPMask, - rule->p.espHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.espHdrFilter.ipHdr.dataSrcIPTo, - rule->p.espHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.espHdrFilter.ipHdr.dataDstIPTo, - rule->p.espHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.espHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.espHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.espHdrFilter.ipHdr.dataDstIPMask, + &rule->p.espHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.espHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.espHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.espHdrFilter.ipHdr.dataDstIPTo, + &rule->p.espHdrFilter.ipHdr.dataDstIPFrom); virNWFilterRuleDefFixupIPSet(&rule->p.espHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_AH: case VIR_NWFILTER_RULE_PROTOCOL_AHoIPV6: - COPY_NEG_SIGN(rule->p.ahHdrFilter.ipHdr.dataSrcIPMask, - rule->p.ahHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.ahHdrFilter.ipHdr.dataDstIPMask, - rule->p.ahHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.ahHdrFilter.ipHdr.dataSrcIPTo, - rule->p.ahHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.ahHdrFilter.ipHdr.dataDstIPTo, - rule->p.ahHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.ahHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.ahHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.ahHdrFilter.ipHdr.dataDstIPMask, + &rule->p.ahHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.ahHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.ahHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.ahHdrFilter.ipHdr.dataDstIPTo, + &rule->p.ahHdrFilter.ipHdr.dataDstIPFrom); virNWFilterRuleDefFixupIPSet(&rule->p.ahHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_SCTP: case VIR_NWFILTER_RULE_PROTOCOL_SCTPoIPV6: - COPY_NEG_SIGN(rule->p.sctpHdrFilter.ipHdr.dataSrcIPMask, - rule->p.sctpHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.ipHdr.dataDstIPMask, - rule->p.sctpHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.ipHdr.dataSrcIPTo, - rule->p.sctpHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.ipHdr.dataDstIPTo, - rule->p.sctpHdrFilter.ipHdr.dataDstIPFrom); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.portData.dataSrcPortEnd, - rule->p.sctpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.portData.dataDstPortStart, - rule->p.sctpHdrFilter.portData.dataSrcPortStart); - COPY_NEG_SIGN(rule->p.sctpHdrFilter.portData.dataDstPortEnd, - rule->p.sctpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.sctpHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.sctpHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.sctpHdrFilter.ipHdr.dataDstIPMask, + &rule->p.sctpHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.sctpHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.sctpHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.sctpHdrFilter.ipHdr.dataDstIPTo, + &rule->p.sctpHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.sctpHdrFilter.portData.dataSrcPortEnd, + &rule->p.sctpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.sctpHdrFilter.portData.dataDstPortStart, + &rule->p.sctpHdrFilter.portData.dataSrcPortStart); + copy_neg_sign(&rule->p.sctpHdrFilter.portData.dataDstPortEnd, + &rule->p.sctpHdrFilter.portData.dataSrcPortStart); virNWFilterRuleDefFixupIPSet(&rule->p.sctpHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_ICMP: case VIR_NWFILTER_RULE_PROTOCOL_ICMPV6: - COPY_NEG_SIGN(rule->p.icmpHdrFilter.ipHdr.dataSrcIPMask, - rule->p.icmpHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.icmpHdrFilter.ipHdr.dataDstIPMask, - rule->p.icmpHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.icmpHdrFilter.ipHdr.dataSrcIPTo, - rule->p.icmpHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.icmpHdrFilter.ipHdr.dataDstIPTo, - rule->p.icmpHdrFilter.ipHdr.dataDstIPFrom); - COPY_NEG_SIGN(rule->p.icmpHdrFilter.dataICMPCode, - rule->p.icmpHdrFilter.dataICMPType); + copy_neg_sign(&rule->p.icmpHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.icmpHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.icmpHdrFilter.ipHdr.dataDstIPMask, + &rule->p.icmpHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.icmpHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.icmpHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.icmpHdrFilter.ipHdr.dataDstIPTo, + &rule->p.icmpHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.icmpHdrFilter.dataICMPCode, + &rule->p.icmpHdrFilter.dataICMPType); virNWFilterRuleDefFixupIPSet(&rule->p.icmpHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_ALL: case VIR_NWFILTER_RULE_PROTOCOL_ALLoIPV6: - COPY_NEG_SIGN(rule->p.allHdrFilter.ipHdr.dataSrcIPMask, - rule->p.allHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.allHdrFilter.ipHdr.dataDstIPMask, - rule->p.allHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.allHdrFilter.ipHdr.dataSrcIPTo, - rule->p.allHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.allHdrFilter.ipHdr.dataDstIPTo, - rule->p.allHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.allHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.allHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.allHdrFilter.ipHdr.dataDstIPMask, + &rule->p.allHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.allHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.allHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.allHdrFilter.ipHdr.dataDstIPTo, + &rule->p.allHdrFilter.ipHdr.dataDstIPFrom); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_IGMP: - COPY_NEG_SIGN(rule->p.igmpHdrFilter.ipHdr.dataSrcIPMask, - rule->p.igmpHdrFilter.ipHdr.dataSrcIPAddr); - COPY_NEG_SIGN(rule->p.igmpHdrFilter.ipHdr.dataDstIPMask, - rule->p.igmpHdrFilter.ipHdr.dataDstIPAddr); - COPY_NEG_SIGN(rule->p.igmpHdrFilter.ipHdr.dataSrcIPTo, - rule->p.igmpHdrFilter.ipHdr.dataSrcIPFrom); - COPY_NEG_SIGN(rule->p.igmpHdrFilter.ipHdr.dataDstIPTo, - rule->p.igmpHdrFilter.ipHdr.dataDstIPFrom); + copy_neg_sign(&rule->p.igmpHdrFilter.ipHdr.dataSrcIPMask, + &rule->p.igmpHdrFilter.ipHdr.dataSrcIPAddr); + copy_neg_sign(&rule->p.igmpHdrFilter.ipHdr.dataDstIPMask, + &rule->p.igmpHdrFilter.ipHdr.dataDstIPAddr); + copy_neg_sign(&rule->p.igmpHdrFilter.ipHdr.dataSrcIPTo, + &rule->p.igmpHdrFilter.ipHdr.dataSrcIPFrom); + copy_neg_sign(&rule->p.igmpHdrFilter.ipHdr.dataDstIPTo, + &rule->p.igmpHdrFilter.ipHdr.dataDstIPFrom); virNWFilterRuleDefFixupIPSet(&rule->p.igmpHdrFilter.ipHdr); break; =20 case VIR_NWFILTER_RULE_PROTOCOL_LAST: break; } -#undef COPY_NEG_SIGN } =20 =20 --=20 2.31.1