]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: alloc: Reimplement VIR_APPEND_ELEMENT_COPY using virAppendElement
authorPeter Krempa <pkrempa@redhat.com>
Tue, 3 Aug 2021 12:14:20 +0000 (14:14 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 6 Aug 2021 06:53:25 +0000 (08:53 +0200)
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 <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
12 files changed:
src/conf/domain_conf.c
src/conf/nwfilter_conf.c
src/conf/virnwfilterobj.c
src/cpu/cpu_x86.c
src/logging/log_handler.c
src/openvz/openvz_conf.c
src/qemu/qemu_domain.c
src/qemu/qemu_hotplug.c
src/util/viralloc.h
src/util/virfirewall.c
src/vz/vz_sdk.c
tests/nwfilterxml2firewalltest.c

index 09da4ab9521dee9d9483fb508d0a31e8288defbf..8d13e2de8ee9335ecbc5a074ea3e4d5fc7f298ba 100644 (file)
@@ -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 type, int idx, int model)
     cont->idx = idx;
     cont->model = 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 = 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(virDomainGraphicsDef *def,
 
     glisten.address = 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(virDomainGraphicsDef *def,
 
     glisten.socket = 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;
 }
 
 
index 6fced9686574e0675987859b834ac7d66cd4e5d9..fc81fd97ea22bb4885a5d82fbc368fda6da6e20b 100644 (file)
@@ -394,11 +394,9 @@ virNWFilterRuleDefAddString(virNWFilterRuleDef *nwf,
                             const char *string,
                             size_t maxstrlen)
 {
-    char *tmp;
+    char *tmp = g_strndup(string, maxstrlen);
 
-    tmp = 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);
             }
index b64fdb9670ff4b893ba3e8657c6387651df27449..c3b2eb048cb4c1506f8c3050fd315815a5e0e03d 100644 (file)
@@ -371,12 +371,8 @@ virNWFilterObjListAssignDef(virNWFilterObjList *nwfilters,
     if (!(obj = 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 = def;
 
     return obj;
index a4792c21dab3cb13b1b0763a2ab73660e55b0548..0238cef8a3be5698f49ab7bd50de727342b29279 100644 (file)
@@ -514,9 +514,8 @@ virCPUx86DataAddItem(virCPUx86Data *data,
     if ((existing = 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, feature);
 
     if (VIR_APPEND_ELEMENT(map->features, map->nfeatures, feature) < 0)
         return -1;
index dde3506fe938280a6d7f90312b610376a086e8ee..5c3df37415393d1de48f28f1edbaecb8d3b0fa59 100644 (file)
@@ -318,8 +318,7 @@ virLogHandlerNewPostExecRestart(virJSONValue *object,
         if (!(file = 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 = virEventAddHandle(file->pipefd,
                                              VIR_EVENT_HANDLE_READABLE,
@@ -401,8 +400,7 @@ virLogHandlerDomainOpenLogFile(virLogHandler *handler,
                                                DEFAULT_MODE)) == 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 = virEventAddHandle(file->pipefd,
                                          VIR_EVENT_HANDLE_READABLE,
index 2a794801ae02893526bd3fcf1dc0956a556d18c6..07c2cddd92f2f3add6b9ae697b25870f64e07b00 100644 (file)
@@ -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 = strtok_r(NULL, " ", &saveptr);
         }
@@ -275,7 +274,7 @@ openvzReadNetworkConf(virDomainDef *def,
                 }
             }
 
-            ignore_value(VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, net));
+            VIR_APPEND_ELEMENT_COPY(def->nets, def->nnets, net);
         }
     }
 
index 385d0c152684f421d63b8a0351c2d4c30c075f30..6f8c93ea0cf6a0ddc5481c72b8e5dbb899c97b86 100644 (file)
@@ -4001,11 +4001,7 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver,
         if (j == def->npanics) {
             virDomainPanicDef *panic = 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);
         }
     }
 
index 6743a8a742581710bafc42fd83fd4f2b56d7b610..c00e8a78522eec6b53d6eda2e29018236dc7259b 100644 (file)
@@ -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:
index 7397ee377129295377aeb7d9d61612b60c64ef9d..70cd721bc79ca2c8696b23675e15a64a13104231 100644 (file)
@@ -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, false)
 #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, false)
 #define VIR_APPEND_ELEMENT_INPLACE(ptr, count, newelem) \
     virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \
                      VIR_TYPEMATCH(ptr, &(newelem)), \
index e79fe52ac86fd529b57c158f75f6bfd7664db3f7..9594192a7b26306a9feef1d48e02d11a63e59eb3 100644 (file)
@@ -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);
     }
 
 
index e09950812db3a4900a7e74a18ab64ec35ea77eea..3db3bd3884f961d99ce7f9af1452c2f950aa0f03 100644 (file)
@@ -578,8 +578,7 @@ prlsdkAddDomainVideoInfoVm(PRL_HANDLE sdkdom, virDomainDef *def)
     video = g_new0(virDomainVideoDef, 1);
     accel = g_new0(virDomainVideoAccelDef, 1);
 
-    if (VIR_APPEND_ELEMENT_COPY(def->videos, def->nvideos, video) < 0)
-        goto error;
+    VIR_APPEND_ELEMENT_COPY(def->videos, def->nvideos, video);
 
     video->type = VIR_DOMAIN_VIDEO_TYPE_VGA;
     video->vram = videoRam << 10; /* from mbibytes to kbibytes */
@@ -587,11 +586,6 @@ prlsdkAddDomainVideoInfoVm(PRL_HANDLE sdkdom, virDomainDef *def)
     video->accel = accel;
 
     return 0;
-
- error:
-    VIR_FREE(accel);
-    virDomainVideoDefFree(video);
-    return -1;
 }
 
 static int
index 33ba8b9932f0cdedc372de0a82d034ebbe1f860c..8c82efa060bc0c1aa011fba8a510adf9fc1fa86b 100644 (file)
@@ -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 = 0; i < def->nentries; i++) {
         if (def->filterEntries[i]->rule) {