From nobody Mon Feb 9 06:26:39 2026 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=1628075018; cv=none; d=zohomail.com; s=zohoarc; b=RpKa2k+KqbM/8B9Iyztemgf/UqK9qcknQuxG4VwtPXDplQGUXVELxPtDmKoC8yLz5p0yDrwc69IbU4vlTV1BotTuJNWr3FJYuFo1C7KGb00ikBQVgUJRJ9sedfTnVMgjT28rn6rSWNvV93BEo8OSsloMXQwtOZjacWMl6BbYpV0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1628075018; h=Content-Type:Content-Transfer-Encoding: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=Cr4nkMelFzBcLGIgzqrXEqRnaCbbN3nDqaUDrXNpZQw=; b=lHHCTC633f3M7mzgSoF8w9bge76X523429hamWkgGG+ZpynVUomoerwAEZVvL6/E2ERI85N928nKIp0CpFX5hA2m5E89wTvtCW7dSbYoSx3HWNcjXn3JohqJK6K4chhprZDCJ6i9PX8+eERj2WjHM+VM4o/gQ61XjOicKSpBKCE= 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 16280750183141002.1991436788013; Wed, 4 Aug 2021 04:03:38 -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-221--o5aQ8DrMeeFzn22Yuf1bg-1; Wed, 04 Aug 2021 07:03:35 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 792631966326; Wed, 4 Aug 2021 11:03:30 +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 585446788C; Wed, 4 Aug 2021 11:03:30 +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 0CC72180B7A2; Wed, 4 Aug 2021 11:03:30 +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 174B2sS7014233 for ; Wed, 4 Aug 2021 07:02:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 9CB1B1383C; Wed, 4 Aug 2021 11:02:54 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.33]) by smtp.corp.redhat.com (Postfix) with ESMTP id EDBA15D9DC for ; Wed, 4 Aug 2021 11:02:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1628075017; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=Cr4nkMelFzBcLGIgzqrXEqRnaCbbN3nDqaUDrXNpZQw=; b=Rq2kq1hqZ7H1zjhUdEabl74cq54FOsuagBQQZEk0of0osffn7grJTj1oeNN4CId9IWGms1 w35SUGPNhJAGCkGq1mohf1AKy5v4oBKqZIVnxYKZScpnp/Z4n7BY/mnH00enjPKsXuqUFk mIrOXKGwJpY1y4xd9Twv3TQrBwvfSgo= X-MC-Unique: -o5aQ8DrMeeFzn22Yuf1bg-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 05/23] util: alloc: Reimplement VIR_APPEND_ELEMENT_COPY using virAppendElement Date: Wed, 4 Aug 2021 13:02:25 +0200 Message-Id: <853b4b8d98c20ac46876b795e613e3d1c7e0cc20.1628074874.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com 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.16 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: 1628075019773100001 Content-Type: text/plain; charset="utf-8" Use virAppendElement instead of virInsertElementsN to implement VIR_APPEND_ELEMENT_COPY which allows us to remove error handling as the only relevant errors were removed when switching to aborting memory allocation functions. Signed-off-by: Peter Krempa --- src/conf/domain_conf.c | 29 +++++------------------------ src/conf/nwfilter_conf.c | 12 +++--------- src/conf/virnwfilterobj.c | 8 ++------ src/cpu/cpu_x86.c | 12 ++++-------- src/logging/log_handler.c | 6 ++---- src/openvz/openvz_conf.c | 5 ++--- src/qemu/qemu_domain.c | 6 +----- src/qemu/qemu_hotplug.c | 6 ++---- src/util/viralloc.h | 4 ++-- src/util/virfirewall.c | 8 ++------ tests/nwfilterxml2firewalltest.c | 7 +------ 11 files changed, 26 insertions(+), 77 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 09da4ab952..8d13e2de8e 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16573,8 +16573,7 @@ virDomainMemoryInsert(virDomainDef *def, return -1; } - if (VIR_APPEND_ELEMENT_COPY(def->mems, def->nmems, mem) < 0) - return -1; + VIR_APPEND_ELEMENT_COPY(def->mems, def->nmems, mem); virDomainDefSetMemoryTotal(def, memory + mem->size); @@ -17141,10 +17140,7 @@ virDomainDefAddController(virDomainDef *def, int t= ype, int idx, int model) cont->idx =3D idx; cont->model =3D model; - if (VIR_APPEND_ELEMENT_COPY(def->controllers, def->ncontrollers, cont)= < 0) { - VIR_FREE(cont); - return NULL; - } + VIR_APPEND_ELEMENT_COPY(def->controllers, def->ncontrollers, cont); return cont; } @@ -22780,15 +22776,9 @@ virDomainIOThreadIDAdd(virDomainDef *def, iothrid->iothread_id =3D iothread_id; - if (VIR_APPEND_ELEMENT_COPY(def->iothreadids, def->niothreadids, - iothrid) < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(def->iothreadids, def->niothreadids, iothrid); return iothrid; - - error: - virDomainIOThreadIDDefFree(iothrid); - return NULL; } @@ -29304,13 +29294,9 @@ virDomainGraphicsListenAppendAddress(virDomainGrap= hicsDef *def, glisten.address =3D g_strdup(address); - if (VIR_APPEND_ELEMENT_COPY(def->listens, def->nListens, glisten) < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(def->listens, def->nListens, glisten); return 0; - error: - VIR_FREE(glisten.address); - return -1; } @@ -29326,14 +29312,9 @@ virDomainGraphicsListenAppendSocket(virDomainGraph= icsDef *def, glisten.socket =3D g_strdup(socketPath); - if (VIR_APPEND_ELEMENT_COPY(def->listens, def->nListens, glisten) < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(def->listens, def->nListens, glisten); return 0; - - error: - VIR_FREE(glisten.socket); - return -1; } diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 6fced96865..fc81fd97ea 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -394,11 +394,9 @@ virNWFilterRuleDefAddString(virNWFilterRuleDef *nwf, const char *string, size_t maxstrlen) { - char *tmp; + char *tmp =3D g_strndup(string, maxstrlen); - tmp =3D g_strndup(string, maxstrlen); - if (VIR_APPEND_ELEMENT_COPY(nwf->strings, nwf->nstrings, tmp) < 0) - VIR_FREE(tmp); + VIR_APPEND_ELEMENT_COPY(nwf->strings, nwf->nstrings, tmp); return tmp; } @@ -2696,11 +2694,7 @@ virNWFilterDefParseXML(xmlXPathContextPtr ctxt) } if (entry->rule || entry->include) { - if (VIR_APPEND_ELEMENT_COPY(ret->filterEntries, - ret->nentries, entry) < 0) { - virNWFilterEntryFree(entry); - goto cleanup; - } + VIR_APPEND_ELEMENT_COPY(ret->filterEntries, ret->nentries,= entry); } else { virNWFilterEntryFree(entry); } diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index b64fdb9670..c3b2eb048c 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -371,12 +371,8 @@ virNWFilterObjListAssignDef(virNWFilterObjList *nwfilt= ers, if (!(obj =3D virNWFilterObjNew())) return NULL; - if (VIR_APPEND_ELEMENT_COPY(nwfilters->objs, - nwfilters->count, obj) < 0) { - virNWFilterObjUnlock(obj); - virNWFilterObjFree(obj); - return NULL; - } + VIR_APPEND_ELEMENT_COPY(nwfilters->objs, nwfilters->count, obj); + obj->def =3D def; return obj; diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index a4792c21da..0238cef8a3 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -514,9 +514,8 @@ virCPUx86DataAddItem(virCPUx86Data *data, if ((existing =3D virCPUx86DataGet(data, item))) { virCPUx86DataItemSetBits(existing, item); } else { - if (VIR_APPEND_ELEMENT_COPY(data->items, data->len, - *((virCPUx86DataItem *)item)) < 0) - return -1; + VIR_APPEND_ELEMENT_COPY(data->items, data->len, + *((virCPUx86DataItem *)item)); qsort(data->items, data->len, sizeof(virCPUx86DataItem), virCPUx86DataSorter); @@ -1143,11 +1142,8 @@ x86FeatureParse(xmlXPathContextPtr ctxt, return -1; } - if (!feature->migratable && - VIR_APPEND_ELEMENT_COPY(map->migrate_blockers, - map->nblockers, - feature) < 0) - return -1; + if (!feature->migratable) + VIR_APPEND_ELEMENT_COPY(map->migrate_blockers, map->nblockers, fea= ture); if (VIR_APPEND_ELEMENT(map->features, map->nfeatures, feature) < 0) return -1; diff --git a/src/logging/log_handler.c b/src/logging/log_handler.c index dde3506fe9..5c3df37415 100644 --- a/src/logging/log_handler.c +++ b/src/logging/log_handler.c @@ -318,8 +318,7 @@ virLogHandlerNewPostExecRestart(virJSONValue *object, if (!(file =3D virLogHandlerLogFilePostExecRestart(handler, child)= )) goto error; - if (VIR_APPEND_ELEMENT_COPY(handler->files, handler->nfiles, file)= < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(handler->files, handler->nfiles, file); if ((file->watch =3D virEventAddHandle(file->pipefd, VIR_EVENT_HANDLE_READABLE, @@ -401,8 +400,7 @@ virLogHandlerDomainOpenLogFile(virLogHandler *handler, DEFAULT_MODE)) =3D=3D NULL) goto error; - if (VIR_APPEND_ELEMENT_COPY(handler->files, handler->nfiles, file) < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(handler->files, handler->nfiles, file); if ((file->watch =3D virEventAddHandle(file->pipefd, VIR_EVENT_HANDLE_READABLE, diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index 2a794801ae..07c2cddd92 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -206,8 +206,7 @@ openvzReadNetworkConf(virDomainDef *def, if (virDomainNetAppendIPAddress(net, token, AF_UNSPEC, 0) < 0) goto error; - if (VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, net) < 0) - goto error; + VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, net); token =3D strtok_r(NULL, " ", &saveptr); } @@ -275,7 +274,7 @@ openvzReadNetworkConf(virDomainDef *def, } } - ignore_value(VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, ne= t)); + VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, net); } } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 7e2efc8168..004bfb5d83 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4001,11 +4001,7 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, if (j =3D=3D def->npanics) { virDomainPanicDef *panic =3D g_new0(virDomainPanicDef, 1); - if (VIR_APPEND_ELEMENT_COPY(def->panics, - def->npanics, panic) < 0) { - VIR_FREE(panic); - return -1; - } + VIR_APPEND_ELEMENT_COPY(def->panics, def->npanics, panic); } } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 6743a8a742..c00e8a7852 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1236,8 +1236,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, virDomainNetGetActualHostdev(net)) = < 0) { goto cleanup; } - if (VIR_APPEND_ELEMENT_COPY(vm->def->nets, vm->def->nnets, net) < = 0) - goto cleanup; + VIR_APPEND_ELEMENT_COPY(vm->def->nets, vm->def->nnets, net); /* the rest of the setup doesn't apply to hostdev interfaces, so * we can skip straight to the cleanup (nothing there applies to @@ -1272,8 +1271,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, * locked memory limit). This means we will need to remove it if * there is a failure. */ - if (VIR_APPEND_ELEMENT_COPY(vm->def->nets, vm->def->nnets, net) < 0) - goto cleanup; + VIR_APPEND_ELEMENT_COPY(vm->def->nets, vm->def->nnets, net); switch (actualType) { case VIR_DOMAIN_NET_TYPE_BRIDGE: diff --git a/src/util/viralloc.h b/src/util/viralloc.h index 7397ee3771..70cd721bc7 100644 --- a/src/util/viralloc.h +++ b/src/util/viralloc.h @@ -234,8 +234,8 @@ int virDeleteElementsN(void *ptrptr, size_t size, size_= t at, size_t *countptr, virInsertElementsN(&(ptr), sizeof(*(ptr)), -1, &(count), \ VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, f= alse) #define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \ - virInsertElementsN(&(ptr), sizeof(*(ptr)), -1, &(count), \ - VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, = false) + virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \ + VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, fa= lse) #define VIR_APPEND_ELEMENT_INPLACE(ptr, count, newelem) \ virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \ VIR_TYPEMATCH(ptr, &(newelem)), \ diff --git a/src/util/virfirewall.c b/src/util/virfirewall.c index e79fe52ac8..9594192a7b 100644 --- a/src/util/virfirewall.c +++ b/src/util/virfirewall.c @@ -313,13 +313,9 @@ virFirewallAddRuleFullV(virFirewall *firewall, ADD_ARG(rule, str); if (group->addingRollback) { - ignore_value(VIR_APPEND_ELEMENT_COPY(group->rollback, - group->nrollback, - rule)); + VIR_APPEND_ELEMENT_COPY(group->rollback, group->nrollback, rule); } else { - ignore_value(VIR_APPEND_ELEMENT_COPY(group->action, - group->naction, - rule)); + VIR_APPEND_ELEMENT_COPY(group->action, group->naction, rule); } diff --git a/tests/nwfilterxml2firewalltest.c b/tests/nwfilterxml2firewallt= est.c index 33ba8b9932..8c82efa060 100644 --- a/tests/nwfilterxml2firewalltest.c +++ b/tests/nwfilterxml2firewalltest.c @@ -269,12 +269,7 @@ virNWFilterDefToInst(const char *xml, if (!def) return -1; - if (VIR_APPEND_ELEMENT_COPY(inst->filters, - inst->nfilters, - def) < 0) { - virNWFilterDefFree(def); - goto cleanup; - } + VIR_APPEND_ELEMENT_COPY(inst->filters, inst->nfilters, def); for (i =3D 0; i < def->nentries; i++) { if (def->filterEntries[i]->rule) { --=20 2.31.1