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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -237,7 +237,9 @@ collectServers(void *payload,
if (!srv) if (!srv)
return -1; 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); newfd);
goto error; goto error;
} }
if (VIR_APPEND_ELEMENT(msg->fds, msg->nfds, newfd) < 0) VIR_APPEND_ELEMENT(msg->fds, msg->nfds, newfd);
goto error;
return 0; return 0;
error: error:
VIR_FORCE_CLOSE(newfd); VIR_FORCE_CLOSE(newfd);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -639,8 +639,7 @@ virStorageBackendRBDGetVolNames(virStorageBackendRBDState *ptr)
namedup = g_strdup(name); namedup = g_strdup(name);
if (VIR_APPEND_ELEMENT(names, nnames, namedup) < 0) VIR_APPEND_ELEMENT(names, nnames, namedup);
return NULL;
name += strlen(name) + 1; 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. * necessary memory re-allocation has already been done.
* *
* These macros are safe to use on arguments with side effects. * 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) \ #define VIR_APPEND_ELEMENT(ptr, count, newelem) \
virInsertElementsN(&(ptr), sizeof(*(ptr)), -1, &(count), \ virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \
VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false) VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), true, false)
#define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \ #define VIR_APPEND_ELEMENT_COPY(ptr, count, newelem) \
virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \ virAppendElement(&(ptr), sizeof(*(ptr)), &(count), \
VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false) VIR_TYPEMATCH(ptr, &(newelem)), &(newelem), false, false)

View File

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

View File

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

View File

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

View File

@ -303,7 +303,9 @@ virMediatedDeviceListAdd(virMediatedDeviceList *list,
_("device %s is already in use"), (*dev)->path); _("device %s is already in use"), (*dev)->path);
return -1; 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) if (virMediatedDeviceTypeReadAttrs(tmppath, &mdev_type) < 0)
goto cleanup; goto cleanup;
if (VIR_APPEND_ELEMENT(mdev_types, nmdev_types, mdev_type) < 0) VIR_APPEND_ELEMENT(mdev_types, nmdev_types, mdev_type);
goto cleanup;
} }
if (dirret < 0) if (dirret < 0)

View File

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

View File

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

View File

@ -1688,7 +1688,9 @@ virPCIDeviceListAdd(virPCIDeviceList *list,
_("Device %s is already in use"), dev->name); _("Device %s is already in use"), dev->name);
return -1; 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; *copyAddr = *newDevAddr;
if (VIR_APPEND_ELEMENT(*addrList->iommuGroupDevices, VIR_APPEND_ELEMENT(*addrList->iommuGroupDevices,
*addrList->nIommuGroupDevices, copyAddr) < 0) *addrList->nIommuGroupDevices, copyAddr);
return -1;
return 0; return 0;
} }
@ -2363,9 +2364,7 @@ virPCIGetVirtualFunctions(const char *sysfs_path,
goto error; goto error;
} }
if (VIR_APPEND_ELEMENT(*virtual_functions, *num_virtual_functions, VIR_APPEND_ELEMENT(*virtual_functions, *num_virtual_functions, config_addr);
config_addr) < 0)
goto error;
} while (1); } while (1);
VIR_DEBUG("Found %zu virtual functions for %s", 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; goto cleanup;
tmp_pid = tmp; tmp_pid = tmp;
if (VIR_APPEND_ELEMENT(*pids, *npids, tmp_pid) < 0) VIR_APPEND_ELEMENT(*pids, *npids, tmp_pid);
goto cleanup;
} }
if (value < 0) if (value < 0)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3852,8 +3852,7 @@ cmdUndefine(vshControl *ctl, const vshCmd *cmd)
vol.source = g_steal_pointer(&source); vol.source = g_steal_pointer(&source);
vol.target = g_steal_pointer(&target); vol.target = g_steal_pointer(&target);
if (VIR_APPEND_ELEMENT(vols, nvols, vol) < 0) VIR_APPEND_ELEMENT(vols, nvols, vol);
goto cleanup;
} }
/* print volumes specified by user that were not found in domain definition */ /* 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); tmp = g_strdup(arg);
if (VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp) < 0) VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp);
goto error;
arg = va_arg(ap, const char *); arg = va_arg(ap, const char *);
} }
@ -140,8 +139,7 @@ vshTableNew(const char *arg, ...)
if (!header) if (!header)
goto error; goto error;
if (VIR_APPEND_ELEMENT(table->rows, table->nrows, header) < 0) VIR_APPEND_ELEMENT(table->rows, table->nrows, header);
goto error;
return table; return table;
error: error:
@ -182,8 +180,7 @@ vshTableRowAppend(vshTable *table, const char *arg, ...)
goto cleanup; goto cleanup;
} }
if (VIR_APPEND_ELEMENT(table->rows, table->nrows, row) < 0) VIR_APPEND_ELEMENT(table->rows, table->nrows, row);
goto cleanup;
ret = 0; ret = 0;
cleanup: cleanup: