util: alloc: Reimplement VIR_APPEND_ELEMENT using virAppendElement

Use virAppendElement instead of virInsertElementsN to implement
VIR_APPEND_ELEMENT 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>
This commit is contained in:
Peter Krempa 2021-08-03 14:14:20 +02:00
parent 8c22b28dbe
commit 98f6f2081d
65 changed files with 206 additions and 399 deletions

View File

@ -328,10 +328,7 @@ bhyveParseBhyveLPCArg(virDomainDef *def,
break;
}
if (VIR_APPEND_ELEMENT(def->serials, def->nserials, chr) < 0) {
virDomainChrDefFree(chr);
goto error;
}
VIR_APPEND_ELEMENT(def->serials, def->nserials, chr);
}
VIR_FREE(type);
@ -459,8 +456,7 @@ bhyveParsePCIDisk(virDomainDef *def,
disk->dst[2] = 'a' + idx;
if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
goto error;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
return 0;
@ -536,8 +532,7 @@ bhyveParsePCINet(virDomainDef *def,
if (!mac)
virDomainNetGenerateMAC(xmlopt, &net->mac);
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0)
goto error;
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
return 0;
error:
@ -642,11 +637,8 @@ bhyveParsePCIFbuf(virDomainDef *def,
}
cleanup:
if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, video) < 0)
goto error;
if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics) < 0)
goto error;
VIR_APPEND_ELEMENT(def->videos, def->nvideos, video);
VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics);
return 0;

View File

@ -2124,10 +2124,7 @@ virCapabilitiesInitResctrlMemory(virCaps *caps)
node->id = bank->id;
node->cpus = virBitmapNewCopy(bank->cpus);
if (VIR_APPEND_ELEMENT(caps->host.memBW.nodes,
caps->host.memBW.nnodes, node) < 0) {
goto cleanup;
}
VIR_APPEND_ELEMENT(caps->host.memBW.nodes, caps->host.memBW.nnodes, node);
}
virCapsHostMemBWNodeFree(node);
node = NULL;
@ -2250,11 +2247,7 @@ virCapabilitiesInitCaches(virCaps *caps)
&bank->controls) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(caps->host.cache.banks,
caps->host.cache.nbanks,
bank) < 0) {
goto cleanup;
}
VIR_APPEND_ELEMENT(caps->host.cache.banks, caps->host.cache.nbanks, bank);
}
virCapsHostCacheBankFree(bank);

View File

@ -4820,10 +4820,7 @@ virDomainDefAddConsoleCompat(virDomainDef *def)
/* create the serial port definition from the console definition */
if (def->nserials == 0) {
if (VIR_APPEND_ELEMENT(def->serials,
def->nserials,
def->consoles[0]) < 0)
return -1;
VIR_APPEND_ELEMENT(def->serials, def->nserials, def->consoles[0]);
/* modify it to be a serial port */
def->serials[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
@ -7475,9 +7472,10 @@ virDomainNetIPInfoParseXML(const char *source,
goto cleanup;
for (i = 0; i < nnodes; i++) {
if (!(ip = virDomainNetIPParseXML(nodes[i])) ||
VIR_APPEND_ELEMENT(def->ips, def->nips, ip) < 0)
if (!(ip = virDomainNetIPParseXML(nodes[i])))
goto cleanup;
VIR_APPEND_ELEMENT(def->ips, def->nips, ip);
}
VIR_FREE(nodes);
@ -7485,9 +7483,10 @@ virDomainNetIPInfoParseXML(const char *source,
goto cleanup;
for (i = 0; i < nnodes; i++) {
if (!(route = virNetDevIPRouteParseXML(source, nodes[i], ctxt)) ||
VIR_APPEND_ELEMENT(def->routes, def->nroutes, route) < 0)
if (!(route = virNetDevIPRouteParseXML(source, nodes[i], ctxt)))
goto cleanup;
VIR_APPEND_ELEMENT(def->routes, def->nroutes, route);
}
ret = 0;
@ -10120,8 +10119,7 @@ virDomainNetAppendIPAddress(virDomainNetDef *def,
goto error;
ipDef->prefix = prefix;
if (VIR_APPEND_ELEMENT(def->guestIP.ips, def->guestIP.nips, ipDef) < 0)
goto error;
VIR_APPEND_ELEMENT(def->guestIP.ips, def->guestIP.nips, ipDef);
return 0;
@ -12464,8 +12462,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDef *def,
/* If no <listen/> element was found add a new one created by parsing
* <graphics/> element. */
if (def->nListens == 0) {
if (VIR_APPEND_ELEMENT(def->listens, def->nListens, newListen) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->listens, def->nListens, newListen);
} else {
virDomainGraphicsListenDef *glisten = &def->listens[0];
@ -15216,7 +15213,9 @@ virDomainChrTargetTypeToString(int deviceType,
int
virDomainHostdevInsert(virDomainDef *def, virDomainHostdevDef *hostdev)
{
return VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev);
VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev);
return 0;
}
virDomainHostdevDef *
@ -15631,13 +15630,7 @@ int virDomainNetInsert(virDomainDef *def, virDomainNetDef *net)
virDomainHostdevInsert(def, &net->data.hostdev.def) < 0)
return -1;
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0) {
/* virDomainHostdevInsert just appends new hostdevs, so we are sure
* that the hostdev we've added a few lines above is at the end of
* array. Although, devices are indexed from zero ... */
virDomainHostdevRemove(def, def->nhostdevs - 1);
return -1;
}
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
return 0;
}
@ -15835,8 +15828,7 @@ virDomainNetUpdate(virDomainDef *def,
}
} else if (newhostdev) {
/* add newhostdev to end of def->hostdevs */
if (VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, newhostdev) < 0)
return -1;
VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, newhostdev);
}
def->nets[netidx] = newnet;
@ -15952,8 +15944,7 @@ virDomainNetARPInterfaces(virDomainDef *def,
iface->addrs->addr = g_strdup(entry.ipaddr);
if (VIR_APPEND_ELEMENT(ifaces_ret, ifaces_count, iface) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(ifaces_ret, ifaces_count, iface);
}
}
}
@ -16649,7 +16640,9 @@ int
virDomainShmemDefInsert(virDomainDef *def,
virDomainShmemDef *shmem)
{
return VIR_APPEND_ELEMENT(def->shmems, def->nshmems, shmem);
VIR_APPEND_ELEMENT(def->shmems, def->nshmems, shmem);
return 0;
}
@ -17237,10 +17230,7 @@ virDomainDefMaybeAddInput(virDomainDef *def,
input->type = type;
input->bus = bus;
if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) {
VIR_FREE(input);
return -1;
}
VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input);
return 0;
}
@ -18581,10 +18571,7 @@ virDomainResctrlMonDefParse(virDomainDef *def,
if (virResctrlMonitorSetID(domresmon->instance, id) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(resctrl->monitors,
resctrl->nmonitors,
domresmon) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(resctrl->monitors, resctrl->nmonitors, domresmon);
VIR_FREE(id);
VIR_FREE(tmp);
@ -18697,8 +18684,7 @@ virDomainCachetuneDefParse(virDomainDef *def,
goto cleanup;
}
if (VIR_APPEND_ELEMENT(def->resctrls, def->nresctrls, resctrl) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->resctrls, def->nresctrls, resctrl);
ret = 0;
cleanup:
@ -19063,8 +19049,7 @@ virDomainMemorytuneDefParse(virDomainDef *def,
* only append the new @newresctrl object to domain if any of them is
* not zero. */
if (newresctrl && (nmons || n)) {
if (VIR_APPEND_ELEMENT(def->resctrls, def->nresctrls, newresctrl) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->resctrls, def->nresctrls, newresctrl);
}
ret = 0;
@ -22728,8 +22713,7 @@ virDomainDefAddImplicitVideo(virDomainDef *def, virDomainXMLOption *xmlopt)
if (!(video = virDomainVideoDefNew(xmlopt)))
return -1;
video->type = VIR_DOMAIN_VIDEO_TYPE_DEFAULT;
if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, video) < 0)
return -1;
VIR_APPEND_ELEMENT(def->videos, def->nvideos, video);
return 0;
}
@ -28694,7 +28678,9 @@ virDiskNameToBusDeviceIndex(virDomainDiskDef *disk,
int
virDomainFSInsert(virDomainDef *def, virDomainFSDef *fs)
{
return VIR_APPEND_ELEMENT(def->fss, def->nfss, fs);
VIR_APPEND_ELEMENT(def->fss, def->nfss, fs);
return 0;
}
virDomainFSDef *

View File

@ -643,8 +643,7 @@ virNetworkDHCPDefParseXML(const char *networkName,
if (virNetworkDHCPRangeDefParseXML(networkName, def, cur, &range) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(def->ranges, def->nranges, range) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->ranges, def->nranges, range);
} else if (cur->type == XML_ELEMENT_NODE &&
virXMLNodeNameEqual(cur, "host")) {
@ -652,8 +651,7 @@ virNetworkDHCPDefParseXML(const char *networkName,
if (virNetworkDHCPHostDefParseXML(networkName, def, cur,
&host, false) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(def->hosts, def->nhosts, host) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->hosts, def->nhosts, host);
} else if (VIR_SOCKET_ADDR_IS_FAMILY(&def->address, AF_INET) &&
cur->type == XML_ELEMENT_NODE &&
virXMLNodeNameEqual(cur, "bootp")) {
@ -726,8 +724,7 @@ virNetworkDNSHostDefParseXML(const char *networkName,
networkName);
goto error;
}
if (VIR_APPEND_ELEMENT(def->names, def->nnames, name) < 0)
goto error;
VIR_APPEND_ELEMENT(def->names, def->nnames, name);
}
}
cur = cur->next;

View File

@ -849,9 +849,7 @@ virNodeDevCapMdevTypesParseXML(xmlXPathContextPtr ctxt,
type->name = virXPathString("string(./name)", ctxt);
if (VIR_APPEND_ELEMENT(*mdev_types,
*nmdev_types, type) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*mdev_types, *nmdev_types, type);
}
ret = 0;
@ -1574,10 +1572,9 @@ virNodeDevCapPCIDevIommuGroupParseXML(xmlXPathContextPtr ctxt,
if (virPCIDeviceAddressParseXML(addrNodes[i], pciAddr) < 0)
return -1;
if (VIR_APPEND_ELEMENT(pci_dev->iommuGroupDevices,
pci_dev->nIommuGroupDevices,
pciAddr) < 0)
return -1;
VIR_APPEND_ELEMENT(pci_dev->iommuGroupDevices,
pci_dev->nIommuGroupDevices,
pciAddr);
}
return 0;
@ -1684,10 +1681,9 @@ virNodeDevPCICapSRIOVVirtualParseXML(xmlXPathContextPtr ctxt,
if (virPCIDeviceAddressParseXML(addresses[i], addr) < 0)
return -1;
if (VIR_APPEND_ELEMENT(pci_dev->virtual_functions,
pci_dev->num_virtual_functions,
addr) < 0)
return -1;
VIR_APPEND_ELEMENT(pci_dev->virtual_functions,
pci_dev->num_virtual_functions,
addr);
}
pci_dev->flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VIRTUAL_FUNCTION;
@ -1896,9 +1892,9 @@ virNodeDevCapMdevAttributeParseXML(xmlXPathContextPtr ctxt,
return -1;
}
return VIR_APPEND_ELEMENT(mdev->attributes,
mdev->nattributes,
attr);
VIR_APPEND_ELEMENT(mdev->attributes, mdev->nattributes, attr);
return 0;
}
static int

View File

@ -440,8 +440,7 @@ virObjectEventCallbackListAddID(virConnectPtr conn,
cb->filter_opaque = filter_opaque;
cb->legacy = legacy;
if (VIR_APPEND_ELEMENT(cbList->callbacks, cbList->count, cb) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(cbList->callbacks, cbList->count, cb);
/* When additional filtering is being done, every client callback
* is matched to exactly one server callback. */
@ -454,7 +453,6 @@ virObjectEventCallbackListAddID(virConnectPtr conn,
ret++;
}
cleanup:
virObjectEventCallbackFree(cb);
return ret;
}
@ -642,8 +640,8 @@ virObjectEventQueuePush(virObjectEventQueue *evtQueue,
if (!evtQueue)
return -1;
if (VIR_APPEND_ELEMENT(evtQueue->events, evtQueue->count, event) < 0)
return -1;
VIR_APPEND_ELEMENT(evtQueue->events, evtQueue->count, event);
return 0;
}

View File

@ -609,11 +609,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
return -1;
}
if (VIR_APPEND_ELEMENT(source->devices, source->ndevice, dev) < 0) {
virStoragePoolSourceDeviceClear(&dev);
return -1;
}
VIR_APPEND_ELEMENT(source->devices, source->ndevice, dev);
}
sourcedir = virXPathString("string(./dir/@path)", ctxt);

View File

@ -1027,11 +1027,7 @@ virDomainObjListConvert(virDomainObjList *domlist,
virObjectRef(vm);
if (VIR_APPEND_ELEMENT(*vms, *nvms, vm) < 0) {
virObjectRWUnlock(domlist);
virObjectUnref(vm);
goto error;
}
VIR_APPEND_ELEMENT(*vms, *nvms, vm);
}
virObjectRWUnlock(domlist);

View File

@ -282,8 +282,7 @@ virCPUarmVendorParse(xmlXPathContextPtr ctxt,
return -1;
}
if (VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor) < 0)
return -1;
VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor);
return 0;
}
@ -368,8 +367,7 @@ virCPUarmModelParse(xmlXPathContextPtr ctxt,
return -1;
}
if (VIR_APPEND_ELEMENT(map->models, map->nmodels, model) < 0)
return -1;
VIR_APPEND_ELEMENT(map->models, map->nmodels, model);
return 0;
}

View File

@ -285,8 +285,7 @@ ppc64VendorParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED,
return -1;
}
if (VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor) < 0)
return -1;
VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor);
return 0;
}
@ -361,8 +360,7 @@ ppc64ModelParse(xmlXPathContextPtr ctxt,
model->data.pvr[i].mask = pvr;
}
if (VIR_APPEND_ELEMENT(map->models, map->nmodels, model) < 0)
return -1;
VIR_APPEND_ELEMENT(map->models, map->nmodels, model);
return 0;
}

View File

@ -937,8 +937,7 @@ x86VendorParse(xmlXPathContextPtr ctxt,
if (virCPUx86VendorToData(string, &vendor->data) < 0)
return -1;
if (VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor) < 0)
return -1;
VIR_APPEND_ELEMENT(map->vendors, map->nvendors, vendor);
return 0;
}
@ -1145,8 +1144,7 @@ x86FeatureParse(xmlXPathContextPtr ctxt,
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;
VIR_APPEND_ELEMENT(map->features, map->nfeatures, feature);
return 0;
}
@ -1679,8 +1677,7 @@ x86ModelParse(xmlXPathContextPtr ctxt,
if (x86ModelParseFeatures(model, ctxt, map) < 0)
return -1;
if (VIR_APPEND_ELEMENT(map->models, map->nmodels, model) < 0)
return -1;
VIR_APPEND_ELEMENT(map->models, map->nmodels, model);
return 0;
}

View File

@ -5166,8 +5166,7 @@ esxDomainInterfaceAddresses(virDomainPtr domain,
else if (ret == 0)
continue;
if (VIR_APPEND_ELEMENT(iface->addrs, addrs_count, ip_addr) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(iface->addrs, addrs_count, ip_addr);
}
} else {
esxVI_String *str;
@ -5182,9 +5181,7 @@ esxDomainInterfaceAddresses(virDomainPtr domain,
else if (ret == 0)
continue;
if (VIR_APPEND_ELEMENT(iface->addrs, addrs_count, ip_addr) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(iface->addrs, addrs_count, ip_addr);
}
}

View File

@ -900,8 +900,7 @@ esxConnectListAllNetworks(virConnectPtr conn,
virNetworkPtr net = virtualswitchToNetwork(conn, hostVirtualSwitch);
if (!net)
goto cleanup;
if (VIR_APPEND_ELEMENT(*nets, count, net) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*nets, count, net);
} else {
++count;
}

View File

@ -1203,8 +1203,7 @@ hypervDomainDefAppendController(virDomainDef *def,
controller->idx = idx;
if (VIR_APPEND_ELEMENT(def->controllers, def->ncontrollers, controller) < 0)
return -1;
VIR_APPEND_ELEMENT(def->controllers, def->ncontrollers, controller);
return 0;
}
@ -1270,8 +1269,7 @@ hypervDomainDefAppendDisk(virDomainDef *def,
disk->info.addr.drive.target = 0;
disk->info.addr.drive.unit = addr;
if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
return -1;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
return 0;
}
@ -1283,8 +1281,7 @@ hypervDomainDefParseFloppyStorageExtent(virDomainDef *def, virDomainDiskDef *dis
disk->bus = VIR_DOMAIN_DISK_BUS_FDC;
disk->dst = g_strdup("fda");
if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
return -1;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
return 0;
}
@ -1456,8 +1453,7 @@ hypervDomainDefParsePhysicalDisk(hypervPrivate *priv,
disk->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
result = 0;
@ -1579,10 +1575,7 @@ hypervDomainDefParseSerial(virDomainDef *def, Msvm_ResourceAllocationSettingData
serial->source->data.file.path = g_strdup(srcPath);
if (VIR_APPEND_ELEMENT(def->serials, def->nserials, serial) < 0) {
virDomainChrDefFree(serial);
return -1;
}
VIR_APPEND_ELEMENT(def->serials, def->nserials, serial);
}
return 0;
@ -1661,10 +1654,7 @@ hypervDomainDefParseEthernetAdapter(virDomainDef *def,
/* get bridge name */
ndef->data.bridge.brname = g_strdup(vSwitch->data->Name);
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, ndef) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not append definition to domain"));
return -1;
}
VIR_APPEND_ELEMENT(def->nets, def->nnets, ndef);
return 0;
}

View File

@ -134,8 +134,7 @@ hypervConnectListAllNetworks(virConnectPtr conn,
virNetworkPtr net = hypervMsvmVirtualSwitchToNetwork(conn, entry);
if (!net)
goto cleanup;
if (VIR_APPEND_ELEMENT(*nets, count, net) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*nets, count, net);
} else {
++count;
}

View File

@ -495,10 +495,7 @@ xenParsePCIList(virConf *conf, virDomainDef *def)
if (!(hostdev = xenParsePCI(entry)))
return -1;
if (VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev) < 0) {
virDomainHostdevDefFree(hostdev);
return -1;
}
VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev);
}
return 0;
@ -983,8 +980,7 @@ xenParseCharDev(virConf *conf, virDomainDef *def, const char *nativeFormat)
goto cleanup;
chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
chr->target.port = portnum;
if (VIR_APPEND_ELEMENT(def->serials, def->nserials, chr) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->serials, def->nserials, chr);
}
} else {
g_autofree char *serial = NULL;
@ -1265,7 +1261,6 @@ xenParseVifList(virConf *conf, virDomainDef *def, const char *vif_typename)
for (list = list->list; list; list = list->next) {
virDomainNetDef *net = NULL;
int rc;
if ((list->type != VIR_CONF_STRING) || (list->str == NULL))
continue;
@ -1273,11 +1268,7 @@ xenParseVifList(virConf *conf, virDomainDef *def, const char *vif_typename)
if (!(net = xenParseVif(list->str, vif_typename)))
return -1;
rc = VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
if (rc < 0) {
virDomainNetDefFree(net);
return -1;
}
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
}
return 0;
@ -1339,7 +1330,7 @@ xenParseSxprSound(virDomainDef *def,
snddef = g_new0(virDomainSoundDef, 1);
snddef->model = model;
ignore_value(VIR_APPEND_ELEMENT(def->sounds, def->nsounds, snddef));
VIR_APPEND_ELEMENT(def->sounds, def->nsounds, snddef);
if (!next)
break;

View File

@ -796,8 +796,7 @@ xenParseXLDisk(virConf *conf, virDomainDef *def)
else
disk->bus = VIR_DOMAIN_DISK_BUS_IDE;
if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
goto fail;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
libxl_device_disk_dispose(libxldisk);
@ -855,10 +854,7 @@ xenParseXLInputDevs(virConf *conf, virDomainDef *def)
input->type = VIR_DOMAIN_INPUT_TYPE_TABLET;
else if (STREQ(str, "keyboard"))
input->type = VIR_DOMAIN_INPUT_TYPE_KBD;
if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) {
virDomainInputDefFree(input);
return -1;
}
VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input);
}
val = val->next;
}
@ -928,10 +924,7 @@ xenParseXLUSBController(virConf *conf, virDomainDef *def)
controller->model = usbctrl_type;
controller->opts.usbopts.ports = usbctrl_ports;
if (VIR_APPEND_ELEMENT(def->controllers, def->ncontrollers, controller) < 0) {
virDomainControllerDefFree(controller);
return -1;
}
VIR_APPEND_ELEMENT(def->controllers, def->ncontrollers, controller);
skipusbctrl:
list = list->next;
@ -995,10 +988,7 @@ xenParseXLUSB(virConf *conf, virDomainDef *def)
hostdev->source.subsys.u.usb.bus = busNum;
hostdev->source.subsys.u.usb.device = devNum;
if (VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev) < 0) {
virDomainHostdevDefFree(hostdev);
return -1;
}
VIR_APPEND_ELEMENT(def->hostdevs, def->nhostdevs, hostdev);
skipusb:
list = list->next;
@ -1073,8 +1063,7 @@ xenParseXLChannel(virConf *conf, virDomainDef *def)
channel->targetType = VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_XEN;
channel->target.name = g_steal_pointer(&name);
if (VIR_APPEND_ELEMENT(def->channels, def->nchannels, channel) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->channels, def->nchannels, channel);
skipchannel:
list = list->next;

View File

@ -255,16 +255,11 @@ xenParseXMDiskList(virConf *conf, virDomainDef *def)
continue;
/* Maintain list in sorted order according to target device name */
rc = VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
virDomainDiskDefFree(disk);
if (rc < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk);
}
ret = 0;
cleanup:
g_strfreev(disks);
return ret;
}
@ -402,10 +397,7 @@ xenParseXMInputDevs(virConf *conf, virDomainDef *def)
input->type = VIR_DOMAIN_INPUT_TYPE_TABLET;
else if (STREQ(str, "keyboard"))
input->type = VIR_DOMAIN_INPUT_TYPE_KBD;
if (VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input) < 0) {
virDomainInputDefFree(input);
return -1;
}
VIR_APPEND_ELEMENT(def->inputs, def->ninputs, input);
}
}
return 0;

View File

@ -794,10 +794,7 @@ static int lxcContainerSetReadOnly(void)
tmp = g_strdup(mntent.mnt_dir);
if (VIR_APPEND_ELEMENT(mounts, nmounts, tmp) < 0) {
g_free(tmp);
goto cleanup;
}
VIR_APPEND_ELEMENT(mounts, nmounts, tmp);
}
if (!mounts) {

View File

@ -597,8 +597,7 @@ static int virLXCControllerAppendNBDPids(virLXCController *ctrl,
return -1;
for (i = 0; i < npids; i++) {
if (VIR_APPEND_ELEMENT(ctrl->nbdpids, ctrl->nnbdpids, pids[i]) < 0)
return -1;
VIR_APPEND_ELEMENT(ctrl->nbdpids, ctrl->nnbdpids, pids[i]);
}
return 0;

View File

@ -448,8 +448,7 @@ lxcAddNetworkRouteDefinition(const char *address,
0, false)))
return -1;
if (VIR_APPEND_ELEMENT(*routes, *nroutes, route) < 0)
return -1;
VIR_APPEND_ELEMENT(*routes, *nroutes, route);
return 0;
}
@ -569,8 +568,7 @@ lxcNetworkParseDataIPs(const char *name,
g_strfreev(ipparts);
if (VIR_APPEND_ELEMENT(parseData->ips, parseData->nips, ip) < 0)
return -1;
VIR_APPEND_ELEMENT(parseData->ips, parseData->nips, ip);
return 0;
}

View File

@ -4227,9 +4227,7 @@ networkGetDHCPLeases(virNetworkPtr net,
lease->clientid = g_strdup(virJSONValueObjectGetString(lease_tmp, "client-id"));
lease->hostname = g_strdup(virJSONValueObjectGetString(lease_tmp, "hostname"));
if (VIR_APPEND_ELEMENT(leases_ret, nleases, lease) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(leases_ret, nleases, lease);
} else {
nleases++;
}

View File

@ -1191,8 +1191,7 @@ nodeDeviceParseMdevctlJSON(const char *jsonstring,
goto error;
}
if (VIR_APPEND_ELEMENT(outdevs, noutdevs, child) < 0)
goto error;
VIR_APPEND_ELEMENT(outdevs, noutdevs, child);
}
}

View File

@ -3315,8 +3315,7 @@ ebtablesGetSubChainInsts(GHashTable *chains,
inst->protoidx = idx;
inst->filtername = filter_names[i].key;
if (VIR_APPEND_ELEMENT(*insts, *ninsts, inst) < 0)
return -1;
VIR_APPEND_ELEMENT(*insts, *ninsts, inst);
}
return 0;

View File

@ -266,10 +266,7 @@ virNWFilterRuleDefToRuleInst(virNWFilterDef *def,
if (virNWFilterHashTablePutAll(vars, ruleinst->vars) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(inst->rules,
inst->nrules,
ruleinst) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(inst->rules, inst->nrules, ruleinst);
ret = 0;
cleanup:
@ -316,10 +313,7 @@ virNWFilterIncludeDefToRuleInst(virNWFilterDriverState *driver,
break;
}
if (VIR_APPEND_ELEMENT(inst->filters,
inst->nfilters,
obj) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(inst->filters, inst->nfilters, obj);
obj = NULL;
if (virNWFilterDefToInst(driver,

View File

@ -355,8 +355,7 @@ openvzReadFSConf(virDomainDef *def,
}
}
if (VIR_APPEND_ELEMENT(def->fss, def->nfss, fs) < 0)
goto error;
VIR_APPEND_ELEMENT(def->fss, def->nfss, fs);
VIR_FREE(temp);

View File

@ -1962,8 +1962,7 @@ qemuBlockStorageSourceChainDetachPrepareBlockdev(virStorageSource *src)
if (!(backend = qemuBlockStorageSourceDetachPrepare(n, NULL)))
return NULL;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend) < 0)
return NULL;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend);
}
return g_steal_pointer(&data);
@ -1990,8 +1989,7 @@ qemuBlockStorageSourceChainDetachPrepareDrive(virStorageSource *src,
if (!(backend = qemuBlockStorageSourceDetachPrepare(src, driveAlias)))
return NULL;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend) < 0)
return NULL;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend);
return g_steal_pointer(&data);
}
@ -2016,8 +2014,7 @@ qemuBlockStorageSourceChainDetachPrepareChardev(char *chardevAlias)
backend->chardevAlias = chardevAlias;
backend->chardevAdded = true;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend) < 0)
return NULL;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, backend);
return g_steal_pointer(&data);
}

View File

@ -8591,9 +8591,10 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver,
*/
if (driver->privileged && nicindexes && nnicindexes &&
net->ifname) {
if (virNetDevGetIndex(net->ifname, &nicindex) < 0 ||
VIR_APPEND_ELEMENT(*nicindexes, *nnicindexes, nicindex) < 0)
if (virNetDevGetIndex(net->ifname, &nicindex) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*nicindexes, *nnicindexes, nicindex);
}
break;
}
@ -11005,8 +11006,7 @@ qemuBuildStorageSourceChainAttachPrepareDrive(virDomainDiskDef *disk,
if (qemuBuildStorageSourceAttachPrepareCommon(disk->src, elem, qemuCaps) < 0)
return NULL;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem) < 0)
return NULL;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem);
return g_steal_pointer(&data);
}
@ -11030,8 +11030,7 @@ qemuBuildStorageSourceChainAttachPrepareChardev(virDomainDiskDef *disk)
if (!(elem = qemuBuildStorageSourceAttachPrepareChardev(disk)))
return NULL;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem) < 0)
return NULL;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem);
return g_steal_pointer(&data);
}
@ -11051,8 +11050,7 @@ qemuBuildStorageSourceChainAttachPrepareBlockdevOne(qemuBlockStorageSourceChainD
if (qemuBuildStorageSourceAttachPrepareCommon(src, elem, qemuCaps) < 0)
return -1;
if (VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem) < 0)
return -1;
VIR_APPEND_ELEMENT(data->srcdata, data->nsrcdata, elem);
return 0;
}

View File

@ -2969,12 +2969,10 @@ qemuDomainUSBAddressAddHubs(virDomainDef *def)
hub = g_new0(virDomainHubDef, 1);
hub->type = VIR_DOMAIN_HUB_TYPE_USB;
if (VIR_APPEND_ELEMENT(def->hubs, def->nhubs, hub) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->hubs, def->nhubs, hub);
}
ret = 0;
cleanup:
VIR_FREE(hub);
return ret;
}

View File

@ -7245,8 +7245,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef,
case VIR_DOMAIN_DEVICE_SOUND:
sound = dev->data.sound;
if (VIR_APPEND_ELEMENT(vmdef->sounds, vmdef->nsounds, sound) < 0)
return -1;
VIR_APPEND_ELEMENT(vmdef->sounds, vmdef->nsounds, sound);
dev->data.sound = NULL;
break;
@ -7319,8 +7318,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef,
return -1;
}
if (VIR_APPEND_ELEMENT(vmdef->rngs, vmdef->nrngs, dev->data.rng) < 0)
return -1;
VIR_APPEND_ELEMENT(vmdef->rngs, vmdef->nrngs, dev->data.rng);
dev->data.rng = NULL;
break;
@ -7342,8 +7340,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef,
case VIR_DOMAIN_DEVICE_REDIRDEV:
redirdev = dev->data.redirdev;
if (VIR_APPEND_ELEMENT(vmdef->redirdevs, vmdef->nredirdevs, redirdev) < 0)
return -1;
VIR_APPEND_ELEMENT(vmdef->redirdevs, vmdef->nredirdevs, redirdev);
dev->data.redirdev = NULL;
break;
@ -7369,8 +7366,7 @@ qemuDomainAttachDeviceConfig(virDomainDef *vmdef,
break;
case VIR_DOMAIN_DEVICE_INPUT:
if (VIR_APPEND_ELEMENT(vmdef->inputs, vmdef->ninputs, dev->data.input) < 0)
return -1;
VIR_APPEND_ELEMENT(vmdef->inputs, vmdef->ninputs, dev->data.input);
break;
case VIR_DOMAIN_DEVICE_VSOCK:
@ -17665,8 +17661,7 @@ qemuDomainGetResctrlMonData(virQEMUDriver *driver,
&res->stats, &res->nstats) < 0)
goto error;
if (VIR_APPEND_ELEMENT(*resdata, *nresdata, res) < 0)
goto error;
VIR_APPEND_ELEMENT(*resdata, *nresdata, res);
}
}

View File

@ -1484,8 +1484,7 @@ qemuFirmwareGetSupported(const char *machine,
tmp->name = g_strdup(fwpath);
tmp->nvram = g_strdup(nvrampath);
if (VIR_APPEND_ELEMENT(*fws, *nfws, tmp) < 0)
return -1;
VIR_APPEND_ELEMENT(*fws, *nfws, tmp);
}
}
}

View File

@ -9253,8 +9253,7 @@ qemuMonitorJSONGetJobInfo(qemuMonitor *mon,
if (!(job = qemuMonitorJSONGetJobInfoOne(virJSONValueArrayGet(data, i))))
return -1;
if (VIR_APPEND_ELEMENT(*jobs, *njobs, job) < 0)
return -1;
VIR_APPEND_ELEMENT(*jobs, *njobs, job);
}
return 0;

View File

@ -1226,9 +1226,8 @@ qemuNamespacePrepareOneItem(qemuNamespaceMknodData *data,
g_free(next);
next = g_strdup(item.target);
if (addToData &&
VIR_APPEND_ELEMENT(data->items, data->nitems, item) < 0)
return -1;
if (addToData)
VIR_APPEND_ELEMENT(data->items, data->nitems, item);
if (!isLink)
break;

View File

@ -6001,8 +6001,7 @@ qemuProcessSetupHotpluggableVcpus(virQEMUDriver *driver,
vcpupriv->vcpus != 0) {
vcpupriv->alias = g_strdup_printf("vcpu%zu", i);
if (VIR_APPEND_ELEMENT(bootHotplug, nbootHotplug, vcpu) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(bootHotplug, nbootHotplug, vcpu);
}
}

View File

@ -4120,10 +4120,9 @@ remoteDispatchConnectDomainEventRegister(virNetServer *server G_GNUC_UNUSED,
callback->callbackID = -1;
callback->legacy = true;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback);
if ((callbackID = virConnectDomainEventRegisterAny(conn,
NULL,
@ -4348,10 +4347,9 @@ remoteDispatchConnectDomainEventRegisterAny(virNetServer *server G_GNUC_UNUSED,
callback->callbackID = -1;
callback->legacy = true;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback);
if ((callbackID = virConnectDomainEventRegisterAny(conn,
NULL,
@ -4422,10 +4420,9 @@ remoteDispatchConnectDomainEventCallbackRegisterAny(virNetServer *server G_GNUC_
callback->eventID = args->eventID;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->domainEventCallbacks,
priv->ndomainEventCallbacks,
callback);
if ((callbackID = virConnectDomainEventRegisterAny(conn,
dom,
@ -5898,10 +5895,9 @@ remoteDispatchConnectNetworkEventRegisterAny(virNetServer *server G_GNUC_UNUSED,
callback->eventID = args->eventID;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->networkEventCallbacks,
priv->nnetworkEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->networkEventCallbacks,
priv->nnetworkEventCallbacks,
callback);
if ((callbackID = virConnectNetworkEventRegisterAny(conn,
net,
@ -6018,10 +6014,9 @@ remoteDispatchConnectStoragePoolEventRegisterAny(virNetServer *server G_GNUC_UNU
callback->eventID = args->eventID;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->storageEventCallbacks,
priv->nstorageEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->storageEventCallbacks,
priv->nstorageEventCallbacks,
callback);
if ((callbackID = virConnectStoragePoolEventRegisterAny(conn,
pool,
@ -6137,10 +6132,9 @@ remoteDispatchConnectNodeDeviceEventRegisterAny(virNetServer *server G_GNUC_UNUS
callback->eventID = args->eventID;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->nodeDeviceEventCallbacks,
priv->nnodeDeviceEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->nodeDeviceEventCallbacks,
priv->nnodeDeviceEventCallbacks,
callback);
if ((callbackID = virConnectNodeDeviceEventRegisterAny(conn,
dev,
@ -6256,10 +6250,9 @@ remoteDispatchConnectSecretEventRegisterAny(virNetServer *server G_GNUC_UNUSED,
callback->eventID = args->eventID;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->secretEventCallbacks,
priv->nsecretEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->secretEventCallbacks,
priv->nsecretEventCallbacks,
callback);
if ((callbackID = virConnectSecretEventRegisterAny(conn,
secret,
@ -6370,10 +6363,9 @@ qemuDispatchConnectDomainMonitorEventRegister(virNetServer *server G_GNUC_UNUSED
callback->eventID = -1;
callback->callbackID = -1;
ref = callback;
if (VIR_APPEND_ELEMENT(priv->qemuEventCallbacks,
priv->nqemuEventCallbacks,
callback) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(priv->qemuEventCallbacks,
priv->nqemuEventCallbacks,
callback);
if ((callbackID = virConnectDomainQemuMonitorEventRegister(conn,
dom,

View File

@ -237,7 +237,9 @@ collectServers(void *payload,
if (!srv)
return -1;
return VIR_APPEND_ELEMENT(*data->servers, data->nservers, srv);
VIR_APPEND_ELEMENT(*data->servers, data->nservers, srv);
return 0;
}

View File

@ -593,8 +593,7 @@ int virNetMessageAddFD(virNetMessage *msg,
newfd);
goto error;
}
if (VIR_APPEND_ELEMENT(msg->fds, msg->nfds, newfd) < 0)
goto error;
VIR_APPEND_ELEMENT(msg->fds, msg->nfds, newfd);
return 0;
error:
VIR_FORCE_CLOSE(newfd);

View File

@ -1086,16 +1086,12 @@ virNetServerGetClients(virNetServer *srv,
for (i = 0; i < srv->nclients; i++) {
virNetServerClient *client = virObjectRef(srv->clients[i]);
if (VIR_APPEND_ELEMENT(list, nclients, client) < 0) {
virObjectUnref(client);
goto cleanup;
}
VIR_APPEND_ELEMENT(list, nclients, client);
}
*clts = g_steal_pointer(&list);
ret = nclients;
cleanup:
virObjectListFreeCount(list, nclients);
virObjectUnlock(srv);
return ret;

View File

@ -121,8 +121,7 @@ virSecurityDACChownListAppend(virSecurityDACChownList *list,
item->remember = remember;
item->restore = restore;
if (VIR_APPEND_ELEMENT(list->items, list->nItems, item) < 0)
return -1;
VIR_APPEND_ELEMENT(list->items, list->nItems, item);
return 0;
}

View File

@ -684,9 +684,8 @@ virSecurityManagerGenLabel(virSecurityManager *mgr,
} else {
/* The seclabel must be added to @vm prior calling domainGenSecurityLabel
* which may require seclabel to be presented already */
if (generated &&
VIR_APPEND_ELEMENT(vm->seclabels, vm->nseclabels, seclabel) < 0)
goto cleanup;
if (generated)
VIR_APPEND_ELEMENT(vm->seclabels, vm->nseclabels, seclabel);
if (sec_managers[i]->drv->domainGenSecurityLabel(sec_managers[i], vm) < 0) {
if (VIR_DELETE_ELEMENT(vm->seclabels,

View File

@ -125,11 +125,9 @@ virSecuritySELinuxContextListAppend(virSecuritySELinuxContextList *list,
item->remember = remember;
item->restore = restore;
if (VIR_APPEND_ELEMENT(list->items, list->nItems, item) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(list->items, list->nItems, item);
ret = 0;
cleanup:
virSecuritySELinuxContextItemFree(item);
return ret;
}
@ -1894,11 +1892,7 @@ virSecuritySELinuxSetImageLabelInternal(virSecurityManager *mgr,
if (!disk_seclabel)
return -1;
disk_seclabel->labelskip = true;
if (VIR_APPEND_ELEMENT(src->seclabels, src->nseclabels,
disk_seclabel) < 0) {
virSecurityDeviceLabelDefFree(disk_seclabel);
return -1;
}
VIR_APPEND_ELEMENT(src->seclabels, src->nseclabels, disk_seclabel);
ret = 0;
}

View File

@ -201,9 +201,7 @@ virStorageBackendLogicalParseVolExtents(virStorageVolDef *vol,
extent.start = offset * size;
extent.end = (offset * size) + length;
if (VIR_APPEND_ELEMENT(vol->source.extents, vol->source.nextent,
extent) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(vol->source.extents, vol->source.nextent, extent);
}
ret = 0;

View File

@ -639,8 +639,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr)
namedup = g_strdup(name);
if (VIR_APPEND_ELEMENT(names, nnames, namedup) < 0)
return NULL;
VIR_APPEND_ELEMENT(names, nnames, namedup);
name += strlen(name) + 1;
}

View File

@ -227,12 +227,10 @@ int virDeleteElementsN(void *ptrptr, size_t size, size_t at, size_t *countptr,
* necessary memory re-allocation has already been done.
*
* These macros are safe to use on arguments with side effects.
*
* Returns -1 on failure (with OOM error reported), 0 on success
*/
#define VIR_APPEND_ELEMENT(ptr, count, newelem) \
virInsertElementsN(&(ptr), sizeof(*(ptr)), -1, &(count), \
VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \
VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
#define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \
virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \
VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)

View File

@ -369,8 +369,7 @@ virISCSIGetTargets(char **const groups,
target = g_strdup(groups[1]);
if (VIR_APPEND_ELEMENT(list->targets, list->ntargets, target) < 0)
return -1;
VIR_APPEND_ELEMENT(list->targets, list->ntargets, target);
return 0;
}

View File

@ -599,8 +599,9 @@ virJSONValueObjectInsert(virJSONValue *object,
ret = VIR_INSERT_ELEMENT(object->data.object.pairs, 0,
object->data.object.npairs, pair);
} else {
ret = VIR_APPEND_ELEMENT(object->data.object.pairs,
object->data.object.npairs, pair);
VIR_APPEND_ELEMENT(object->data.object.pairs,
object->data.object.npairs, pair);
ret = 0;
}
if (ret == 0)

View File

@ -1638,10 +1638,7 @@ virLogParseOutputs(const char *src, virLogOutput ***outputs)
* lose the old entry
*/
at = virLogFindOutput(list, noutputs, output->dest, output->name);
if (VIR_APPEND_ELEMENT(list, noutputs, output) < 0) {
virLogOutputFree(output);
return -1;
}
VIR_APPEND_ELEMENT(list, noutputs, output);
if (at >= 0) {
virLogOutputFree(list[at]);
VIR_DELETE_ELEMENT(list, at, noutputs);
@ -1687,10 +1684,7 @@ virLogParseFilters(const char *src, virLogFilter ***filters)
if (!(filter = virLogParseFilter(*next)))
return -1;
if (VIR_APPEND_ELEMENT(list, nfilters, filter)) {
virLogFilterFree(filter);
return -1;
}
VIR_APPEND_ELEMENT(list, nfilters, filter);
}
*filters = g_steal_pointer(&list);

View File

@ -303,7 +303,9 @@ virMediatedDeviceListAdd(virMediatedDeviceList *list,
_("device %s is already in use"), (*dev)->path);
return -1;
}
return VIR_APPEND_ELEMENT(list->devs, list->count, *dev);
VIR_APPEND_ELEMENT(list->devs, list->count, *dev);
return 0;
}
@ -554,8 +556,7 @@ virMediatedDeviceGetMdevTypes(const char *sysfspath,
if (virMediatedDeviceTypeReadAttrs(tmppath, &mdev_type) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(mdev_types, nmdev_types, mdev_type) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(mdev_types, nmdev_types, mdev_type);
}
if (dirret < 0)

View File

@ -2799,8 +2799,7 @@ static int virNetDevGetMcastList(const char *ifname,
/* Only return global multicast MAC addresses for
* specified interface */
if (entry->global && STREQ(ifname, entry->name)) {
if (VIR_APPEND_ELEMENT(mcast->entries, mcast->nentries, entry))
return -1;
VIR_APPEND_ELEMENT(mcast->entries, mcast->nentries, entry);
} else {
memset(entry, 0, sizeof(virNetDevMcastEntry));
}

View File

@ -191,11 +191,10 @@ virNVMeDeviceListAdd(virNVMeDeviceList *list,
return -1;
}
if (!(tmp = virNVMeDeviceCopy(dev)) ||
VIR_APPEND_ELEMENT(list->devs, list->count, tmp) < 0) {
virNVMeDeviceFree(tmp);
if (!(tmp = virNVMeDeviceCopy(dev)))
return -1;
}
VIR_APPEND_ELEMENT(list->devs, list->count, tmp);
return 0;
}

View File

@ -1688,7 +1688,9 @@ virPCIDeviceListAdd(virPCIDeviceList *list,
_("Device %s is already in use"), dev->name);
return -1;
}
return VIR_APPEND_ELEMENT(list->devs, list->count, dev);
VIR_APPEND_ELEMENT(list->devs, list->count, dev);
return 0;
}
@ -1948,9 +1950,8 @@ virPCIGetIOMMUGroupAddressesAddOne(virPCIDeviceAddress *newDevAddr, void *opaque
*copyAddr = *newDevAddr;
if (VIR_APPEND_ELEMENT(*addrList->iommuGroupDevices,
*addrList->nIommuGroupDevices, copyAddr) < 0)
return -1;
VIR_APPEND_ELEMENT(*addrList->iommuGroupDevices,
*addrList->nIommuGroupDevices, copyAddr);
return 0;
}
@ -2363,9 +2364,7 @@ virPCIGetVirtualFunctions(const char *sysfs_path,
goto error;
}
if (VIR_APPEND_ELEMENT(*virtual_functions, *num_virtual_functions,
config_addr) < 0)
goto error;
VIR_APPEND_ELEMENT(*virtual_functions, *num_virtual_functions, config_addr);
} while (1);
VIR_DEBUG("Found %zu virtual functions for %s",

View File

@ -673,8 +673,7 @@ int virProcessGetPids(pid_t pid, size_t *npids, pid_t **pids)
goto cleanup;
tmp_pid = tmp;
if (VIR_APPEND_ELEMENT(*pids, *npids, tmp_pid) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*pids, *npids, tmp_pid);
}
if (value < 0)

View File

@ -2634,14 +2634,12 @@ virResctrlMonitorGetStats(virResctrlMonitor *monitor,
if (rv < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(stat->vals, stat->nvals, val) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(stat->vals, stat->nvals, val);
stat->features[i] = g_strdup(resources[i]);
}
if (VIR_APPEND_ELEMENT(*stats, *nstats, stat) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*stats, *nstats, stat);
}
/* Sort in id's ascending order */

View File

@ -254,8 +254,7 @@ virSCSIDeviceSetUsedBy(virSCSIDevice *dev,
copy->drvname = g_strdup(drvname);
copy->domname = g_strdup(domname);
if (VIR_APPEND_ELEMENT(dev->used_by, dev->n_used_by, copy) < 0)
return -1;
VIR_APPEND_ELEMENT(dev->used_by, dev->n_used_by, copy);
return 0;
}
@ -359,7 +358,9 @@ virSCSIDeviceListAdd(virSCSIDeviceList *list,
return -1;
}
return VIR_APPEND_ELEMENT(list->devs, list->count, dev);
VIR_APPEND_ELEMENT(list->devs, list->count, dev);
return 0;
}
virSCSIDevice *

View File

@ -183,7 +183,9 @@ virSCSIVHostDeviceListAdd(virSCSIVHostDeviceList *list,
_("Device %s is already in use"), dev->name);
return -1;
}
return VIR_APPEND_ELEMENT(list->devs, list->count, dev);
VIR_APPEND_ELEMENT(list->devs, list->count, dev);
return 0;
}

View File

@ -447,7 +447,9 @@ virUSBDeviceListAdd(virUSBDeviceList *list,
(*dev)->name);
return -1;
}
return VIR_APPEND_ELEMENT(list->devs, list->count, *dev);
VIR_APPEND_ELEMENT(list->devs, list->count, *dev);
return 0;
}
virUSBDevice *

View File

@ -971,13 +971,8 @@ virGetGroupList(uid_t uid, gid_t gid, gid_t **list)
if ((*list)[i] == gid)
goto cleanup;
}
if (VIR_APPEND_ELEMENT(*list, i, gid) < 0) {
ret = -1;
VIR_FREE(*list);
goto cleanup;
} else {
ret = i;
}
VIR_APPEND_ELEMENT(*list, i, gid);
ret = i;
}
cleanup:

View File

@ -3535,9 +3535,8 @@ vboxDumpDisplay(virDomainDef *def, struct _vboxDriver *data, IMachine *machine)
graphics->data.desktop.display = g_strdup(getenv("DISPLAY"));
}
if (graphics &&
VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics) < 0)
goto cleanup;
if (graphics)
VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics);
gVBoxAPI.UIMachine.GetVRDEServer(machine, &VRDEServer);
if (VRDEServer)
@ -3574,8 +3573,7 @@ vboxDumpDisplay(virDomainDef *def, struct _vboxDriver *data, IMachine *machine)
if (reuseSingleConnection)
graphics->data.rdp.replaceUser = true;
if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, graphics);
}
ret = 0;
@ -3758,10 +3756,7 @@ vboxDumpNetworks(virDomainDef *def, struct _vboxDriver *data, IMachine *machine,
if (enabled) {
net = vboxDumpNetwork(data, adapter);
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0) {
VBOX_RELEASE(adapter);
return -1;
}
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
}
VBOX_RELEASE(adapter);

View File

@ -1893,8 +1893,7 @@ virVMXParseConfig(virVMXContext *ctx,
if (!net)
continue;
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
}
/* def:inputs */

View File

@ -553,8 +553,7 @@ prlsdkAddDomainVideoInfoCt(virDomainDef *def,
video->type = VIR_DOMAIN_VIDEO_TYPE_PARALLELS;
video->vram = 0;
if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, video) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(def->videos, def->nvideos, video);
ret = 0;
cleanup:
@ -945,10 +944,7 @@ prlsdkGetNetAddresses(PRL_HANDLE sdknet, virDomainNetDef *net)
if (!(ip = prlsdkParseNetAddress(addr)))
continue;
if (VIR_APPEND_ELEMENT(net->guestIP.ips, net->guestIP.nips, ip) < 0) {
VIR_FREE(ip);
goto cleanup;
}
VIR_APPEND_ELEMENT(net->guestIP.ips, net->guestIP.nips, ip);
}
ret = 0;
@ -979,8 +975,7 @@ prlsdkGetRoutes(PRL_HANDLE sdknet, virDomainNetDef *net)
NULL, gw, 0, true, 0, false)))
goto cleanup;
if (VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route);
}
if (*gw6 != '\0') {
@ -989,8 +984,7 @@ prlsdkGetRoutes(PRL_HANDLE sdknet, virDomainNetDef *net)
NULL, gw6, 0, true, 0, false)))
goto cleanup;
if (VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(net->guestIP.routes, net->guestIP.nroutes, route);
}
ret = 0;
@ -1126,8 +1120,7 @@ prlsdkAddDomainNetInfo(PRL_HANDLE sdkdom, virDomainDef *def)
PrlHandle_Free(netAdapter);
netAdapter = PRL_INVALID_HANDLE;
if (VIR_APPEND_ELEMENT(def->nets, def->nnets, net) < 0)
goto error;
VIR_APPEND_ELEMENT(def->nets, def->nnets, net);
}
return 0;
@ -1242,8 +1235,7 @@ prlsdkAddSerialInfo(PRL_HANDLE sdkdom,
PrlHandle_Free(serialPort);
serialPort = PRL_INVALID_HANDLE;
if (VIR_APPEND_ELEMENT(*serials, *nserials, chr) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(*serials, *nserials, chr);
}
return 0;
@ -1327,8 +1319,7 @@ prlsdkAddVNCInfo(PRL_HANDLE sdkdom, virDomainDef *def)
gr->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
if (VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr) < 0)
goto error;
VIR_APPEND_ELEMENT(def->graphics, def->ngraphics, gr);
return 0;

View File

@ -213,10 +213,7 @@ virNWFilterRuleDefToRuleInst(virNWFilterDef *def,
if (virNWFilterHashTablePutAll(vars, ruleinst->vars) < 0)
goto cleanup;
if (VIR_APPEND_ELEMENT(inst->rules,
inst->nrules,
ruleinst) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(inst->rules, inst->nrules, ruleinst);
ruleinst = NULL;
ret = 0;

View File

@ -465,19 +465,10 @@ qemuMonitorTestAddHandler(qemuMonitorTest *test,
item->opaque = opaque;
virMutexLock(&test->lock);
if (VIR_APPEND_ELEMENT(test->items, test->nitems, item) < 0) {
virMutexUnlock(&test->lock);
goto error;
}
VIR_APPEND_ELEMENT(test->items, test->nitems, item);
virMutexUnlock(&test->lock);
return 0;
error:
if (freecb)
(freecb)(opaque);
VIR_FREE(item);
return -1;
}
void *

View File

@ -812,10 +812,12 @@ int virTestMain(int argc,
if (!getenv("LIBVIRT_DEBUG") && !virLogGetNbOutputs()) {
if (!(output = virLogOutputNew(virtTestLogOutput, virtTestLogClose,
&testLog, VIR_LOG_DEBUG,
VIR_LOG_TO_STDERR, NULL)) ||
VIR_APPEND_ELEMENT(outputs, noutputs, output) < 0 ||
virLogDefineOutputs(outputs, noutputs) < 0) {
virLogOutputFree(output);
VIR_LOG_TO_STDERR, NULL)))
return EXIT_FAILURE;
VIR_APPEND_ELEMENT(outputs, noutputs, output);
if (virLogDefineOutputs(outputs, noutputs) < 0) {
virLogOutputListFree(outputs, noutputs);
return EXIT_FAILURE;
}

View File

@ -3852,8 +3852,7 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
vol.source = g_steal_pointer(&source);
vol.target = g_steal_pointer(&target);
if (VIR_APPEND_ELEMENT(vols, nvols, vol) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(vols, nvols, vol);
}
/* print volumes specified by user that were not found in domain definition */

View File

@ -102,8 +102,7 @@ vshTableRowNew(const char *arg, va_list ap)
tmp = g_strdup(arg);
if (VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp) < 0)
goto error;
VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp);
arg = va_arg(ap, const char *);
}
@ -140,8 +139,7 @@ vshTableNew(const char *arg, ...)
if (!header)
goto error;
if (VIR_APPEND_ELEMENT(table->rows, table->nrows, header) < 0)
goto error;
VIR_APPEND_ELEMENT(table->rows, table->nrows, header);
return table;
error:
@ -182,8 +180,7 @@ vshTableRowAppend(vshTable *table, const char *arg, ...)
goto cleanup;
}
if (VIR_APPEND_ELEMENT(table->rows, table->nrows, row) < 0)
goto cleanup;
VIR_APPEND_ELEMENT(table->rows, table->nrows, row);
ret = 0;
cleanup: