Adapt to VIR_ALLOC and virAsprintf in src/qemu/*

This commit is contained in:
Michal Privoznik 2013-07-04 12:14:12 +02:00
parent c2225f7a40
commit e987a30dfa
13 changed files with 394 additions and 972 deletions

View File

@ -514,10 +514,8 @@ qemuAgentIORead(qemuAgentPtr mon)
if (avail < 1024) {
if (VIR_REALLOC_N(mon->buffer,
mon->bufferLength + 1024) < 0) {
virReportOOMError();
mon->bufferLength + 1024) < 0)
return -1;
}
mon->bufferLength += 1024;
avail += 1024;
}
@ -919,10 +917,8 @@ qemuAgentGuestSync(qemuAgentPtr mon)
if (virAsprintf(&sync_msg.txBuffer,
"{\"execute\":\"guest-sync\", "
"\"arguments\":{\"id\":%llu}}", id) < 0) {
virReportOOMError();
"\"arguments\":{\"id\":%llu}}", id) < 0)
return -1;
}
sync_msg.txLength = strlen(sync_msg.txBuffer);
@ -988,10 +984,8 @@ qemuAgentCommand(qemuAgentPtr mon,
if (!(cmdstr = virJSONValueToString(cmd, false)))
goto cleanup;
if (virAsprintf(&msg.txBuffer, "%s" LINE_ENDING, cmdstr) < 0) {
virReportOOMError();
if (virAsprintf(&msg.txBuffer, "%s" LINE_ENDING, cmdstr) < 0)
goto cleanup;
}
msg.txLength = strlen(msg.txBuffer);
VIR_DEBUG("Send command '%s' for write, seconds = %d", cmdstr, seconds);
@ -1147,10 +1141,10 @@ qemuAgentMakeCommand(const char *cmdname,
va_start(args, cmdname);
if (!(obj = virJSONValueNewObject()))
goto no_memory;
goto error;
if (virJSONValueObjectAppendString(obj, "execute", cmdname) < 0)
goto no_memory;
goto error;
while ((key = va_arg(args, char *)) != NULL) {
int ret;
@ -1169,7 +1163,7 @@ qemuAgentMakeCommand(const char *cmdname,
if (!jargs &&
!(jargs = virJSONValueNewObject()))
goto no_memory;
goto error;
/* This doesn't support maps/arrays. This hasn't
* proved to be a problem..... yet :-) */
@ -1220,19 +1214,17 @@ qemuAgentMakeCommand(const char *cmdname,
goto error;
}
if (ret < 0)
goto no_memory;
goto error;
}
if (jargs &&
virJSONValueObjectAppend(obj, "arguments", jargs) < 0)
goto no_memory;
goto error;
va_end(args);
return obj;
no_memory:
virReportOOMError();
error:
virJSONValueFree(obj);
virJSONValueFree(jargs);
@ -1497,10 +1489,8 @@ qemuAgentGetVCPUs(qemuAgentPtr mon,
ndata = virJSONValueArraySize(data);
if (VIR_ALLOC_N(*info, ndata) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(*info, ndata) < 0)
goto cleanup;
}
for (i = 0; i < ndata; i++) {
virJSONValuePtr entry = virJSONValueArrayGet(data, i);
@ -1562,23 +1552,23 @@ qemuAgentSetVCPUs(qemuAgentPtr mon,
/* create the key data array */
if (!(cpus = virJSONValueNewArray()))
goto no_memory;
goto cleanup;
for (i = 0; i < ninfo; i++) {
qemuAgentCPUInfoPtr in = &info[i];
/* create single cpu object */
if (!(cpu = virJSONValueNewObject()))
goto no_memory;
goto cleanup;
if (virJSONValueObjectAppendNumberInt(cpu, "logical-id", in->id) < 0)
goto no_memory;
goto cleanup;
if (virJSONValueObjectAppendBoolean(cpu, "online", in->online) < 0)
goto no_memory;
goto cleanup;
if (virJSONValueArrayAppend(cpus, cpu) < 0)
goto no_memory;
goto cleanup;
cpu = NULL;
}
@ -1606,8 +1596,4 @@ cleanup:
virJSONValueFree(cpu);
virJSONValueFree(cpus);
return ret;
no_memory:
virReportOOMError();
goto cleanup;
}

View File

@ -400,7 +400,6 @@ virQEMUCapsParseMachineTypesStr(const char *output,
VIR_REALLOC_N(qemuCaps->machineMaxCpus, qemuCaps->nmachineTypes + 1) < 0) {
VIR_FREE(name);
VIR_FREE(canonical);
virReportOOMError();
return -1;
}
qemuCaps->nmachineTypes++;
@ -499,10 +498,8 @@ virQEMUCapsParseX86Models(const char *output,
if (*p == '\0' || *p == '\n')
continue;
if (VIR_EXPAND_N(qemuCaps->cpuDefinitions, qemuCaps->ncpuDefinitions, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(qemuCaps->cpuDefinitions, qemuCaps->ncpuDefinitions, 1) < 0)
goto cleanup;
}
if (next)
len = next - p - 1;
@ -558,10 +555,8 @@ virQEMUCapsParsePPCModels(const char *output,
if (*p == '\n')
continue;
if (VIR_EXPAND_N(qemuCaps->cpuDefinitions, qemuCaps->ncpuDefinitions, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(qemuCaps->cpuDefinitions, qemuCaps->ncpuDefinitions, 1) < 0)
goto cleanup;
}
len = t - p - 1;
@ -622,10 +617,8 @@ virQEMUCapsFindBinaryForArch(virArch hostarch,
const char *archstr = virQEMUCapsArchToString(guestarch);
char *binary;
if (virAsprintf(&binary, "qemu-system-%s", archstr) < 0) {
virReportOOMError();
if (virAsprintf(&binary, "qemu-system-%s", archstr) < 0)
return NULL;
}
ret = virFindFileInPath(binary);
VIR_FREE(binary);
@ -842,10 +835,8 @@ virQEMUCapsInitCPU(virCapsPtr caps,
virNodeInfo nodeinfo;
int ret = -1;
if (VIR_ALLOC(cpu) < 0) {
virReportOOMError();
if (VIR_ALLOC(cpu) < 0)
goto error;
}
cpu->arch = arch;
@ -1536,10 +1527,8 @@ virQEMUCapsParseDeviceStrObjectTypes(const char *str,
goto cleanup;
}
if (VIR_EXPAND_N(typelist, ntypelist, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(typelist, ntypelist, 1) < 0)
goto cleanup;
}
if (VIR_STRNDUP(typelist[ntypelist - 1], tmp, end-tmp) < 0)
goto cleanup;
}
@ -1591,10 +1580,8 @@ virQEMUCapsParseDeviceStrObjectProps(const char *str,
_("Malformed QEMU device list string, missing '='"));
goto cleanup;
}
if (VIR_EXPAND_N(proplist, nproplist, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(proplist, nproplist, 1) < 0)
goto cleanup;
}
if (VIR_STRNDUP(proplist[nproplist - 1], tmp, end-tmp) < 0)
goto cleanup;
}
@ -1735,12 +1722,11 @@ virQEMUCapsNew(void)
return NULL;
if (!(qemuCaps->flags = virBitmapNew(QEMU_CAPS_LAST)))
goto no_memory;
goto error;
return qemuCaps;
no_memory:
virReportOOMError();
error:
virObjectUnref(qemuCaps);
return NULL;
}
@ -1762,7 +1748,7 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
ret->arch = qemuCaps->arch;
if (VIR_ALLOC_N(ret->cpuDefinitions, qemuCaps->ncpuDefinitions) < 0)
goto no_memory;
goto error;
ret->ncpuDefinitions = qemuCaps->ncpuDefinitions;
for (i = 0; i < qemuCaps->ncpuDefinitions; i++) {
if (VIR_STRDUP(ret->cpuDefinitions[i], qemuCaps->cpuDefinitions[i]) < 0)
@ -1770,11 +1756,11 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
}
if (VIR_ALLOC_N(ret->machineTypes, qemuCaps->nmachineTypes) < 0)
goto no_memory;
goto error;
if (VIR_ALLOC_N(ret->machineAliases, qemuCaps->nmachineTypes) < 0)
goto no_memory;
goto error;
if (VIR_ALLOC_N(ret->machineMaxCpus, qemuCaps->nmachineTypes) < 0)
goto no_memory;
goto error;
ret->nmachineTypes = qemuCaps->nmachineTypes;
for (i = 0; i < qemuCaps->nmachineTypes; i++) {
if (VIR_STRDUP(ret->machineTypes[i], qemuCaps->machineTypes[i]) < 0 ||
@ -1785,8 +1771,6 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
return ret;
no_memory:
virReportOOMError();
error:
virObjectUnref(ret);
return NULL;
@ -1896,7 +1880,6 @@ int virQEMUCapsAddCPUDefinition(virQEMUCapsPtr qemuCaps,
return -1;
if (VIR_EXPAND_N(qemuCaps->cpuDefinitions, qemuCaps->ncpuDefinitions, 1) < 0) {
VIR_FREE(tmp);
virReportOOMError();
return -1;
}
qemuCaps->cpuDefinitions[qemuCaps->ncpuDefinitions-1] = tmp;
@ -2108,18 +2091,12 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps,
if ((nmachines = qemuMonitorGetMachines(mon, &machines)) < 0)
goto cleanup;
if (VIR_ALLOC_N(qemuCaps->machineTypes, nmachines) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(qemuCaps->machineTypes, nmachines) < 0)
goto cleanup;
}
if (VIR_ALLOC_N(qemuCaps->machineAliases, nmachines) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(qemuCaps->machineAliases, nmachines) < 0)
goto cleanup;
}
if (VIR_ALLOC_N(qemuCaps->machineMaxCpus, nmachines) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(qemuCaps->machineMaxCpus, nmachines) < 0)
goto cleanup;
}
for (i = 0; i < nmachines; i++) {
if (VIR_STRDUP(qemuCaps->machineAliases[i], machines[i]->alias) < 0 ||
@ -2506,14 +2483,10 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
/* the ".sock" sufix is important to avoid a possible clash with a qemu
* domain called "capabilities"
*/
if (virAsprintf(&monpath, "%s/%s", libDir, "capabilities.monitor.sock") < 0) {
virReportOOMError();
if (virAsprintf(&monpath, "%s/%s", libDir, "capabilities.monitor.sock") < 0)
goto cleanup;
}
if (virAsprintf(&monarg, "unix:%s,server,nowait", monpath) < 0) {
virReportOOMError();
if (virAsprintf(&monarg, "unix:%s,server,nowait", monpath) < 0)
goto cleanup;
}
/* ".pidfile" suffix is used rather than ".pid" to avoid a possible clash
* with a qemu domain called "capabilities"
@ -2521,10 +2494,8 @@ virQEMUCapsInitQMP(virQEMUCapsPtr qemuCaps,
* -daemonize we need QEMU to be allowed to create them, rather
* than libvirtd. So we're using libDir which QEMU can write to
*/
if (virAsprintf(&pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0) {
virReportOOMError();
if (virAsprintf(&pidfile, "%s/%s", libDir, "capabilities.pidfile") < 0)
goto cleanup;
}
memset(&config, 0, sizeof(config));
config.type = VIR_DOMAIN_CHR_TYPE_UNIX;
@ -2744,10 +2715,8 @@ virQEMUCapsCacheNew(const char *libDir,
{
virQEMUCapsCachePtr cache;
if (VIR_ALLOC(cache) < 0) {
virReportOOMError();
if (VIR_ALLOC(cache) < 0)
return NULL;
}
if (virMutexInit(&cache->lock) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",

View File

@ -706,10 +706,8 @@ int qemuInitCgroup(virQEMUDriverPtr driver,
if (!vm->def->resource && startup) {
virDomainResourceDefPtr res;
if (VIR_ALLOC(res) < 0) {
virReportOOMError();
if (VIR_ALLOC(res) < 0)
goto cleanup;
}
if (VIR_STRDUP(res->partition, "/machine") < 0) {
VIR_FREE(res);

File diff suppressed because it is too large Load Diff

View File

@ -138,31 +138,31 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
if (privileged) {
if (virAsprintf(&cfg->logDir,
"%s/log/libvirt/qemu", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (VIR_STRDUP(cfg->configBaseDir, SYSCONFDIR "/libvirt") < 0)
goto error;
if (virAsprintf(&cfg->stateDir,
"%s/run/libvirt/qemu", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->libDir,
"%s/lib/libvirt/qemu", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->cacheDir,
"%s/cache/libvirt/qemu", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->saveDir,
"%s/lib/libvirt/qemu/save", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->snapshotDir,
"%s/lib/libvirt/qemu/snapshot", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->autoDumpPath,
"%s/lib/libvirt/qemu/dump", LOCALSTATEDIR) < 0)
goto no_memory;
goto error;
} else {
char *rundir;
char *cachedir;
@ -174,11 +174,11 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
if (virAsprintf(&cfg->logDir,
"%s/qemu/log", cachedir) < 0) {
VIR_FREE(cachedir);
goto no_memory;
goto error;
}
if (virAsprintf(&cfg->cacheDir, "%s/qemu/cache", cachedir) < 0) {
VIR_FREE(cachedir);
goto no_memory;
goto error;
}
VIR_FREE(cachedir);
@ -187,7 +187,7 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
goto error;
if (virAsprintf(&cfg->stateDir, "%s/qemu/run", rundir) < 0) {
VIR_FREE(rundir);
goto no_memory;
goto error;
}
VIR_FREE(rundir);
@ -195,19 +195,19 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
goto error;
if (virAsprintf(&cfg->libDir, "%s/qemu/lib", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->saveDir, "%s/qemu/save", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->snapshotDir, "%s/qemu/snapshot", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->autoDumpPath, "%s/qemu/dump", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
}
if (virAsprintf(&cfg->configDir, "%s/qemu", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
if (virAsprintf(&cfg->autostartDir, "%s/qemu/autostart", cfg->configBaseDir) < 0)
goto no_memory;
goto error;
if (VIR_STRDUP(cfg->vncListen, "127.0.0.1") < 0)
@ -255,8 +255,6 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
return cfg;
no_memory:
virReportOOMError();
error:
virObjectUnref(cfg);
return NULL;
@ -377,7 +375,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
}
if (VIR_ALLOC_N(cfg->securityDriverNames, len + 1) < 0)
goto no_memory;
goto cleanup;
for (i = 0, pp = p->list; pp; i++, pp = pp->next) {
if (VIR_STRDUP(cfg->securityDriverNames[i], pp->str) < 0)
@ -388,7 +386,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
CHECK_TYPE("security_driver", VIR_CONF_STRING);
if (p && p->str) {
if (VIR_ALLOC_N(cfg->securityDriverNames, 2) < 0)
goto no_memory;
goto cleanup;
if (VIR_STRDUP(cfg->securityDriverNames[0], p->str) < 0)
goto cleanup;
@ -508,7 +506,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
for (pp = p->list; pp; pp = pp->next)
len++;
if (VIR_ALLOC_N(cfg->cgroupDeviceACL, 1+len) < 0)
goto no_memory;
goto cleanup;
for (i = 0, pp = p->list; pp; ++i, pp = pp->next) {
if (pp->type != VIR_CONF_STRING) {
@ -555,10 +553,6 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
cleanup:
virConfFree(conf);
return ret;
no_memory:
virReportOOMError();
goto cleanup;
}
#undef GET_VALUE_BOOL
#undef GET_VALUE_LONG
@ -594,7 +588,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
/* Basic host arch / guest machine capabilities */
if (!(caps = virQEMUCapsInit(driver->qemuCapsCache)))
goto no_memory;
goto error;
if (virGetHostUUID(caps->host.host_uuid)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@ -612,7 +606,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
caps->host.nsecModels = i;
if (VIR_ALLOC_N(caps->host.secModels, caps->host.nsecModels) < 0)
goto no_memory;
goto error;
for (i = 0; sec_managers[i]; i++) {
doi = virSecurityManagerGetDOI(sec_managers[i]);
@ -628,8 +622,6 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
virObjectUnref(cfg);
return caps;
no_memory:
virReportOOMError();
error:
VIR_FREE(sec_managers);
virObjectUnref(caps);
@ -740,10 +732,8 @@ virQEMUCloseCallbacksSet(virQEMUCloseCallbacksPtr closeCallbacks,
closeDef->cb = cb;
} else {
if (VIR_ALLOC(closeDef) < 0) {
virReportOOMError();
if (VIR_ALLOC(closeDef) < 0)
goto cleanup;
}
closeDef->conn = conn;
closeDef->cb = cb;
@ -878,10 +868,8 @@ virQEMUCloseCallbacksGetForConn(virQEMUCloseCallbacksPtr closeCallbacks,
virQEMUCloseCallbacksListPtr list = NULL;
struct virQEMUCloseCallbacksData data;
if (VIR_ALLOC(list) < 0) {
virReportOOMError();
if (VIR_ALLOC(list) < 0)
return NULL;
}
data.conn = conn;
data.list = list;
@ -965,10 +953,8 @@ qemuGetSharedDeviceKey(const char *device_path)
return NULL;
}
if (virAsprintf(&key, "%d:%d", maj, min) < 0) {
virReportOOMError();
if (virAsprintf(&key, "%d:%d", maj, min) < 0)
return NULL;
}
return key;
}
@ -1013,10 +999,8 @@ qemuCheckSharedDevice(virHashTablePtr sharedDevices,
hostdev->source.subsys.u.scsi.unit)))
goto cleanup;
if (virAsprintf(&hostdev_path, "/dev/%s", hostdev_name) < 0) {
virReportOOMError();
if (virAsprintf(&hostdev_path, "/dev/%s", hostdev_name) < 0)
goto cleanup;
}
device_path = hostdev_path;
} else {
@ -1127,15 +1111,11 @@ qemuSharedDeviceEntryCopy(const qemuSharedDeviceEntryPtr entry)
qemuSharedDeviceEntryPtr ret = NULL;
size_t i;
if (VIR_ALLOC(ret) < 0) {
virReportOOMError();
if (VIR_ALLOC(ret) < 0)
return NULL;
}
if (VIR_ALLOC_N(ret->domains, entry->ref) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(ret->domains, entry->ref) < 0)
goto cleanup;
}
for (i = 0; i < entry->ref; i++) {
if (VIR_STRDUP(ret->domains[i], entry->domains[i]) < 0)
@ -1212,10 +1192,8 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
hostdev->source.subsys.u.scsi.unit)))
goto cleanup;
if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0) {
virReportOOMError();
if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0)
goto cleanup;
}
if (!(key = qemuGetSharedDeviceKey(dev_path)))
goto cleanup;
@ -1236,7 +1214,6 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
if (VIR_EXPAND_N(new_entry->domains, new_entry->ref, 1) < 0 ||
VIR_STRDUP(new_entry->domains[new_entry->ref - 1], name) < 0) {
qemuSharedDeviceEntryFree(new_entry, NULL);
virReportOOMError();
goto cleanup;
}
@ -1249,7 +1226,6 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
VIR_ALLOC_N(entry->domains, 1) < 0 ||
VIR_STRDUP(entry->domains[0], name) < 0) {
qemuSharedDeviceEntryFree(entry, NULL);
virReportOOMError();
goto cleanup;
}
@ -1325,10 +1301,8 @@ qemuRemoveSharedDevice(virQEMUDriverPtr driver,
hostdev->source.subsys.u.scsi.unit)))
goto cleanup;
if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0) {
virReportOOMError();
if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0)
goto cleanup;
}
if (!(key = qemuGetSharedDeviceKey(dev_path)))
goto cleanup;
@ -1415,10 +1389,8 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
hostdev->source.subsys.u.scsi.unit)))
goto cleanup;
if (virAsprintf(&hostdev_path, "/dev/%s", hostdev_name) < 0) {
virReportOOMError();
if (virAsprintf(&hostdev_path, "/dev/%s", hostdev_name) < 0)
goto cleanup;
}
path = hostdev_path;
} else {

View File

@ -348,10 +348,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
xmlNodePtr *nodes = NULL;
virQEMUCapsPtr qemuCaps = NULL;
if (VIR_ALLOC(priv->monConfig) < 0) {
virReportOOMError();
if (VIR_ALLOC(priv->monConfig) < 0)
goto error;
}
if (!(monitorpath =
virXPathString("string(./monitor[1]/@path)", ctxt))) {
@ -390,10 +388,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
goto error;
if (n) {
priv->nvcpupids = n;
if (VIR_REALLOC_N(priv->vcpupids, priv->nvcpupids) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(priv->vcpupids, priv->nvcpupids) < 0)
goto error;
}
for (i = 0; i < n; i++) {
char *pidstr = virXMLPropString(nodes[i], "pid");
@ -536,10 +532,8 @@ qemuDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED,
return -1;
}
if (VIR_ALLOC(cmd) < 0) {
virReportOOMError();
if (VIR_ALLOC(cmd) < 0)
return -1;
}
/* first handle the extra command-line arguments */
n = virXPathNodeSet("./qemu:commandline/qemu:arg", ctxt, &nodes);
@ -548,7 +542,7 @@ qemuDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED,
uses_qemu_ns |= n > 0;
if (n && VIR_ALLOC_N(cmd->args, n) < 0)
goto no_memory;
goto error;
for (i = 0; i < n; i++) {
cmd->args[cmd->num_args] = virXMLPropString(nodes[i], "value");
@ -569,10 +563,10 @@ qemuDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED,
uses_qemu_ns |= n > 0;
if (n && VIR_ALLOC_N(cmd->env_name, n) < 0)
goto no_memory;
goto error;
if (n && VIR_ALLOC_N(cmd->env_value, n) < 0)
goto no_memory;
goto error;
for (i = 0; i < n; i++) {
char *tmp;
@ -615,9 +609,6 @@ qemuDomainDefNamespaceParse(xmlDocPtr xml ATTRIBUTE_UNUSED,
return 0;
no_memory:
virReportOOMError();
error:
VIR_FREE(nodes);
qemuDomainDefNamespaceFree(cmd);
@ -800,10 +791,8 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
if (virAsprintf(&dev->data.chr->source.data.nix.path,
"%s/channel/target/%s.%s",
cfg->libDir, def->name,
dev->data.chr->target.name) < 0) {
virReportOOMError();
dev->data.chr->target.name) < 0)
goto cleanup;
}
dev->data.chr->source.data.nix.listen = true;
}
@ -1393,7 +1382,6 @@ qemuDomainDefFormatBuf(virQEMUDriverPtr driver,
ncontrollers = def->ncontrollers;
if (VIR_ALLOC_N(def->controllers, ncontrollers - toremove) < 0) {
controllers = NULL;
virReportOOMError();
goto cleanup;
}
@ -1581,10 +1569,8 @@ qemuDomainOpenLogHelper(virQEMUDriverConfigPtr cfg,
int fd = -1;
bool trunc = false;
if (virAsprintf(&logfile, "%s/%s.log", cfg->logDir, vm->def->name) < 0) {
virReportOOMError();
if (virAsprintf(&logfile, "%s/%s.log", cfg->logDir, vm->def->name) < 0)
return -1;
}
/* To make SELinux happy we always need to open in append mode.
* So we fake O_TRUNC by calling ftruncate after open instead
@ -1694,10 +1680,8 @@ int qemuDomainAppendLog(virQEMUDriverPtr driver,
(fd = qemuDomainCreateLog(driver, obj, true)) < 0)
goto cleanup;
if (virVasprintf(&message, fmt, argptr) < 0) {
virReportOOMError();
if (virVasprintf(&message, fmt, argptr) < 0)
goto cleanup;
}
if (safewrite(fd, message, strlen(message)) < 0) {
virReportSystemError(errno, _("Unable to write to domain logfile %s"),
obj->def->name);
@ -1744,20 +1728,16 @@ qemuDomainSnapshotWriteMetadata(virDomainObjPtr vm,
if (newxml == NULL)
return -1;
if (virAsprintf(&snapDir, "%s/%s", snapshotDir, vm->def->name) < 0) {
virReportOOMError();
if (virAsprintf(&snapDir, "%s/%s", snapshotDir, vm->def->name) < 0)
goto cleanup;
}
if (virFileMakePath(snapDir) < 0) {
virReportSystemError(errno, _("cannot create snapshot directory '%s'"),
snapDir);
goto cleanup;
}
if (virAsprintf(&snapFile, "%s/%s.xml", snapDir, snapshot->def->name) < 0) {
virReportOOMError();
if (virAsprintf(&snapFile, "%s/%s.xml", snapDir, snapshot->def->name) < 0)
goto cleanup;
}
ret = virXMLSaveFile(snapFile, NULL, "snapshot-edit", newxml);
@ -1889,10 +1869,8 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver,
}
if (virAsprintf(&snapFile, "%s/%s/%s.xml", cfg->snapshotDir,
vm->def->name, snap->def->name) < 0) {
virReportOOMError();
vm->def->name, snap->def->name) < 0)
goto cleanup;
}
if (snap == vm->current_snapshot) {
if (update_current && snap->def->parent) {
@ -2101,10 +2079,8 @@ qemuDomainCleanupAdd(virDomainObjPtr vm,
if (VIR_RESIZE_N(priv->cleanupCallbacks,
priv->ncleanupCallbacks_max,
priv->ncleanupCallbacks, 1) < 0) {
virReportOOMError();
priv->ncleanupCallbacks, 1) < 0)
return -1;
}
priv->cleanupCallbacks[priv->ncleanupCallbacks++] = cb;
return 0;

View File

@ -600,7 +600,7 @@ qemuStateInitialize(bool privileged,
goto error;
if (virAsprintf(&driverConf, "%s/qemu.conf", cfg->configBaseDir) < 0)
goto out_of_memory;
goto error;
if (virQEMUDriverConfigLoadFile(cfg, driverConf) < 0)
goto error;
@ -753,7 +753,7 @@ qemuStateInitialize(bool privileged,
if (virAsprintf(&membase, "%s/libvirt",
cfg->hugetlbfsMount) < 0 ||
virAsprintf(&mempath, "%s/qemu", membase) < 0)
goto out_of_memory;
goto error;
if (virFileMakePath(mempath) < 0) {
virReportSystemError(errno,
@ -835,8 +835,6 @@ qemuStateInitialize(bool privileged,
virNWFilterRegisterCallbackDriver(&qemuCallbackDriver);
return 0;
out_of_memory:
virReportOOMError();
error:
if (conn)
virConnectClose(conn);
@ -917,10 +915,8 @@ qemuStateStop(void) {
VIR_CONNECT_LIST_DOMAINS_ACTIVE)) < 0)
goto cleanup;
if (VIR_ALLOC_N(flags, numDomains) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(flags, numDomains) < 0)
goto cleanup;
}
/* First we pause all VMs to make them stop dirtying
pages, etc. We remember if any VMs were paused so
@ -2825,10 +2821,8 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver,
pad = 1024;
pad += (QEMU_MONITOR_MIGRATE_TO_FILE_BS -
((offset + pad) % QEMU_MONITOR_MIGRATE_TO_FILE_BS));
if (VIR_ALLOC_N(xml, len + pad) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(xml, len + pad) < 0)
goto cleanup;
}
strcpy(xml, domXML);
offset += pad;
@ -3112,7 +3106,6 @@ qemuDomainManagedSavePath(virQEMUDriverPtr driver, virDomainObjPtr vm)
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
if (virAsprintf(&ret, "%s/%s.save", cfg->saveDir, vm->def->name) < 0) {
virReportOOMError();
virObjectUnref(cfg);
return NULL;
}
@ -3522,10 +3515,8 @@ qemuDomainScreenshot(virDomainPtr dom,
goto endjob;
}
if (virAsprintf(&tmp, "%s/qemu.screendump.XXXXXX", cfg->cacheDir) < 0) {
virReportOOMError();
if (virAsprintf(&tmp, "%s/qemu.screendump.XXXXXX", cfg->cacheDir) < 0)
goto endjob;
}
if ((tmp_fd = mkostemp(tmp, O_CLOEXEC)) == -1) {
virReportSystemError(errno, _("mkostemp(\"%s\") failed"), tmp);
@ -3585,10 +3576,8 @@ static void processWatchdogEvent(virQEMUDriverPtr driver, virDomainObjPtr vm, in
if (virAsprintf(&dumpfile, "%s/%s-%u",
cfg->autoDumpPath,
vm->def->name,
(unsigned int)time(NULL)) < 0) {
virReportOOMError();
(unsigned int)time(NULL)) < 0)
goto cleanup;
}
if (qemuDomainObjBeginAsyncJob(driver, vm,
QEMU_ASYNC_JOB_DUMP) < 0) {
@ -3653,10 +3642,8 @@ doCoreDumpToAutoDumpPath(virQEMUDriverPtr driver,
if (virAsprintf(&dumpfile, "%s/%s-%s",
cfg->autoDumpPath,
vm->def->name,
timestr) < 0) {
virReportOOMError();
timestr) < 0)
goto cleanup;
}
if (qemuDomainObjBeginAsyncJob(driver, vm,
QEMU_ASYNC_JOB_DUMP) < 0) {
@ -3916,15 +3903,11 @@ static int qemuDomainHotplugVcpus(virQEMUDriverPtr driver,
virDomainVcpuPinDefPtr vcpupin = NULL;
if (VIR_REALLOC_N(vm->def->cputune.vcpupin,
vm->def->cputune.nvcpupin + 1) < 0) {
virReportOOMError();
vm->def->cputune.nvcpupin + 1) < 0)
goto cleanup;
}
if (VIR_ALLOC(vcpupin) < 0) {
virReportOOMError();
if (VIR_ALLOC(vcpupin) < 0)
goto cleanup;
}
vcpupin->cpumask = virBitmapNew(VIR_DOMAIN_CPUMASK_LEN);
virBitmapCopy(vcpupin->cpumask, vm->def->cpumask);
@ -4283,10 +4266,8 @@ qemuDomainPinVcpuFlags(virDomainPtr dom,
newVcpuPinNum = vm->def->cputune.nvcpupin;
} else {
if (VIR_ALLOC(newVcpuPin) < 0) {
virReportOOMError();
if (VIR_ALLOC(newVcpuPin) < 0)
goto cleanup;
}
newVcpuPinNum = 0;
}
@ -4349,10 +4330,8 @@ qemuDomainPinVcpuFlags(virDomainPtr dom,
}
} else {
if (!persistentDef->cputune.vcpupin) {
if (VIR_ALLOC(persistentDef->cputune.vcpupin) < 0) {
virReportOOMError();
if (VIR_ALLOC(persistentDef->cputune.vcpupin) < 0)
goto cleanup;
}
persistentDef->cputune.nvcpupin = 0;
}
if (virDomainVcpuPinAdd(&persistentDef->cputune.vcpupin,
@ -4549,10 +4528,8 @@ qemuDomainPinEmulator(virDomainPtr dom,
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
if (priv->vcpupids != NULL) {
if (VIR_ALLOC(newVcpuPin) < 0) {
virReportOOMError();
if (VIR_ALLOC(newVcpuPin) < 0)
goto cleanup;
}
if (virDomainVcpuPinAdd(&newVcpuPin, &newVcpuPinNum, cpumap, maplen, -1) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@ -5002,7 +4979,6 @@ static int qemuDomainGetSecurityLabelList(virDomainPtr dom,
len++;
if (VIR_ALLOC_N((*seclabels), len) < 0) {
virReportOOMError();
VIR_FREE(mgrs);
goto cleanup;
}
@ -5170,10 +5146,8 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver,
goto error;
}
if (VIR_ALLOC_N(xml, header.xml_len) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(xml, header.xml_len) < 0)
goto error;
}
if (saferead(fd, xml, header.xml_len) != header.xml_len) {
virReportError(VIR_ERR_OPERATION_FAILED,
@ -5500,10 +5474,8 @@ qemuDomainSaveImageDefineXML(virConnectPtr conn, const char *path,
_("new xml too large to fit in file"));
goto cleanup;
}
if (VIR_EXPAND_N(xml, len, header.xml_len - len) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(xml, len, header.xml_len - len) < 0)
goto cleanup;
}
if (lseek(fd, 0, SEEK_SET) != 0) {
virReportSystemError(errno, _("cannot seek in '%s'"), path);
@ -6644,10 +6616,8 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
_("target %s already exists"), disk->dst);
return -1;
}
if (virDomainDiskInsert(vmdef, disk)) {
virReportOOMError();
if (virDomainDiskInsert(vmdef, disk))
return -1;
}
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
dev->data.disk = NULL;
if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO)
@ -6659,10 +6629,8 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
case VIR_DOMAIN_DEVICE_NET:
net = dev->data.net;
if (virDomainNetInsert(vmdef, net)) {
virReportOOMError();
if (virDomainNetInsert(vmdef, net))
return -1;
}
dev->data.net = NULL;
if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)
return -1;
@ -6675,10 +6643,8 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
_("device is already in the domain configuration"));
return -1;
}
if (virDomainHostdevInsert(vmdef, hostdev)) {
virReportOOMError();
if (virDomainHostdevInsert(vmdef, hostdev))
return -1;
}
dev->data.hostdev = NULL;
if (qemuDomainAssignAddresses(vmdef, qemuCaps, NULL) < 0)
return -1;
@ -7513,10 +7479,8 @@ qemuDomainParseDeviceWeightStr(char *deviceWeightStr,
ndevices = (nsep + 1) / 2;
if (VIR_ALLOC_N(result, ndevices) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(result, ndevices) < 0)
return -1;
}
i = 0;
temp = deviceWeightStr;
@ -7589,10 +7553,8 @@ qemuDomainMergeDeviceWeights(virBlkioDeviceWeightPtr *dest_array,
if (!found) {
if (!src->weight)
continue;
if (VIR_EXPAND_N(*dest_array, *dest_size, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(*dest_array, *dest_size, 1) < 0)
return -1;
}
dest = &(*dest_array)[*dest_size - 1];
dest->path = src->path;
dest->weight = src->weight;
@ -9053,10 +9015,8 @@ qemuDomainBlockResize(virDomainPtr dom,
disk = vm->def->disks[i];
if (virAsprintf(&device, "%s%s", QEMU_DRIVE_HOST_PREFIX,
disk->info.alias) < 0) {
virReportOOMError();
disk->info.alias) < 0)
goto endjob;
}
qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorBlockResize(priv->mon, device, size) < 0) {
@ -9442,10 +9402,8 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
if ((VIR_ALLOC(bandwidth) < 0) ||
(VIR_ALLOC(bandwidth->in) < 0) ||
(VIR_ALLOC(bandwidth->out) < 0)) {
virReportOOMError();
(VIR_ALLOC(bandwidth->out) < 0))
goto cleanup;
}
for (i = 0; i < nparams; i++) {
virTypedParameterPtr param = &params[i];
@ -9476,20 +9434,16 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
}
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
if (VIR_ALLOC(newBandwidth) < 0) {
virReportOOMError();
if (VIR_ALLOC(newBandwidth) < 0)
goto cleanup;
}
/* virNetDevBandwidthSet() will clear any previous value of
* bandwidth parameters, so merge with old bandwidth parameters
* here to prevent them from being lost. */
if (bandwidth->in ||
(net->bandwidth && net->bandwidth->in)) {
if (VIR_ALLOC(newBandwidth->in) < 0) {
virReportOOMError();
if (VIR_ALLOC(newBandwidth->in) < 0)
goto cleanup;
}
memcpy(newBandwidth->in,
bandwidth->in ? bandwidth->in : net->bandwidth->in,
@ -9497,10 +9451,8 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom,
}
if (bandwidth->out ||
(net->bandwidth && net->bandwidth->out)) {
if (VIR_ALLOC(newBandwidth->out) < 0) {
virReportOOMError();
if (VIR_ALLOC(newBandwidth->out) < 0)
goto cleanup;
}
memcpy(newBandwidth->out,
bandwidth->out ? bandwidth->out : net->bandwidth->out,
@ -9821,10 +9773,8 @@ qemuDomainMemoryPeek(virDomainPtr dom,
goto endjob;
}
if (virAsprintf(&tmp, "%s/qemu.mem.XXXXXX", cfg->cacheDir) < 0) {
virReportOOMError();
if (virAsprintf(&tmp, "%s/qemu.mem.XXXXXX", cfg->cacheDir) < 0)
goto endjob;
}
/* Create a temporary filename. */
if ((fd = mkostemp(tmp, O_CLOEXEC)) == -1) {
@ -11697,10 +11647,8 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDriverPtr driver,
if (!(qemuImgPath = qemuFindQemuImgBinary(driver)))
goto cleanup;
if (!(created = virBitmapNew(snap->def->ndisks))) {
virReportOOMError();
if (!(created = virBitmapNew(snap->def->ndisks)))
goto cleanup;
}
/* If reuse is true, then qemuDomainSnapshotPrepare already
* ensured that the new files exist, and it was up to the user to
@ -12053,10 +12001,8 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
if (virAsprintf(&device, "drive-%s", disk->info.alias) < 0 ||
VIR_STRDUP(source, snap->file) < 0 ||
(persistDisk && VIR_STRDUP(persistSource, source) < 0)) {
virReportOOMError();
(persistDisk && VIR_STRDUP(persistSource, source) < 0))
goto cleanup;
}
/* create the stub file and set selinux labels; manipulate disk in
* place, in a way that can be reverted on failure. */
@ -12180,10 +12126,8 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
}
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_TRANSACTION)) {
if (!(actions = virJSONValueNewArray())) {
virReportOOMError();
if (!(actions = virJSONValueNewArray()))
goto cleanup;
}
} else if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DISK_SNAPSHOT)) {
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
_("live disk snapshot not supported with this "
@ -13773,10 +13717,8 @@ static virDomainPtr qemuDomainQemuAttach(virConnectPtr conn,
}
if (!(def->name) &&
virAsprintf(&def->name, "attach-pid-%u", pid_value) < 0) {
virReportOOMError();
virAsprintf(&def->name, "attach-pid-%u", pid_value) < 0)
goto cleanup;
}
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, def->emulator)))
goto cleanup;
@ -14001,10 +13943,8 @@ qemuDiskPathToAlias(virDomainObjPtr vm, const char *path, int *idx)
*idx = i;
if (disk->src) {
if (virAsprintf(&ret, "drive-%s", disk->info.alias) < 0) {
virReportOOMError();
if (virAsprintf(&ret, "drive-%s", disk->info.alias) < 0)
return NULL;
}
}
cleanup:
@ -15552,10 +15492,8 @@ qemuDomainGetPercpuStats(virDomainObjPtr vm,
goto cleanup;
}
if (VIR_ALLOC_N(sum_cpu_time, n) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(sum_cpu_time, n) < 0)
goto cleanup;
}
if (getSumVcpuPercpuStats(vm, sum_cpu_time, n) < 0)
goto cleanup;

View File

@ -277,10 +277,8 @@ int qemuDomainAttachVirtioDiskDevice(virConnectPtr conn,
goto error;
}
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
goto error;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
@ -387,10 +385,8 @@ int qemuDomainAttachPciControllerDevice(virQEMUDriverPtr driver,
}
}
if (VIR_REALLOC_N(vm->def->controllers, vm->def->ncontrollers+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->controllers, vm->def->ncontrollers+1) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
@ -440,10 +436,8 @@ qemuDomainFindOrCreateSCSIDiskController(virQEMUDriverPtr driver,
/* No SCSI controller present, for backward compatibility we
* now hotplug a controller */
if (VIR_ALLOC(cont) < 0) {
virReportOOMError();
if (VIR_ALLOC(cont) < 0)
return NULL;
}
cont->type = VIR_DOMAIN_CONTROLLER_TYPE_SCSI;
cont->idx = controller;
cont->model = -1;
@ -534,10 +528,8 @@ int qemuDomainAttachSCSIDisk(virConnectPtr conn,
goto error;
}
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
goto error;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
@ -638,10 +630,8 @@ int qemuDomainAttachUsbMassstorageDevice(virConnectPtr conn,
goto error;
}
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->disks, vm->def->ndisks+1) < 0)
goto error;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
@ -711,10 +701,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
int i;
/* preallocate new slot for device */
if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets+1) < 0)
goto cleanup;
}
/* If appropriate, grab a physical device from the configured
* network's pool of devices, or resolve bridge device name
@ -758,10 +746,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
if (!tapfdSize)
tapfdSize = vhostfdSize = 1;
if (VIR_ALLOC_N(tapfd, tapfdSize) < 0 ||
VIR_ALLOC_N(vhostfd, vhostfdSize) < 0) {
virReportOOMError();
VIR_ALLOC_N(vhostfd, vhostfdSize) < 0)
goto cleanup;
}
if (qemuNetworkIfaceConnect(vm->def, conn, driver, net,
priv->qemuCaps, tapfd, &tapfdSize) < 0)
goto cleanup;
@ -770,10 +756,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
goto cleanup;
} else if (actualType == VIR_DOMAIN_NET_TYPE_DIRECT) {
tapfdSize = vhostfdSize = 1;
if (VIR_ALLOC(tapfd) < 0 || VIR_ALLOC(vhostfd) < 0) {
virReportOOMError();
if (VIR_ALLOC(tapfd) < 0 || VIR_ALLOC(vhostfd) < 0)
goto cleanup;
}
if ((tapfd[0] = qemuPhysIfaceConnect(vm->def, driver, net,
priv->qemuCaps,
VIR_NETDEV_VPORT_PROFILE_OP_CREATE)) < 0)
@ -783,10 +767,8 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
goto cleanup;
} else if (actualType == VIR_DOMAIN_NET_TYPE_ETHERNET) {
vhostfdSize = 1;
if (VIR_ALLOC(vhostfd) < 0) {
virReportOOMError();
if (VIR_ALLOC(vhostfd) < 0)
goto cleanup;
}
if (qemuOpenVhostNet(vm->def, net, priv->qemuCaps, vhostfd, &vhostfdSize) < 0)
goto cleanup;
}
@ -826,19 +808,17 @@ int qemuDomainAttachNetDevice(virConnectPtr conn,
}
if (VIR_ALLOC_N(tapfdName, tapfdSize) < 0 ||
VIR_ALLOC_N(vhostfdName, vhostfdSize) < 0) {
virReportOOMError();
VIR_ALLOC_N(vhostfdName, vhostfdSize) < 0)
goto cleanup;
}
for (i = 0; i < tapfdSize; i++) {
if (virAsprintf(&tapfdName[i], "fd-%s%d", net->info.alias, i) < 0)
goto no_memory;
goto cleanup;
}
for (i = 0; i < vhostfdSize; i++) {
if (virAsprintf(&vhostfdName[i], "vhostfd-%s%d", net->info.alias, i) < 0)
goto no_memory;
goto cleanup;
}
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_NETDEV) &&
@ -1003,7 +983,7 @@ try_remove:
virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
char *netdev_name;
if (virAsprintf(&netdev_name, "host%s", net->info.alias) < 0)
goto no_memory;
goto cleanup;
qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorRemoveNetdev(priv->mon, netdev_name) < 0)
VIR_WARN("Failed to remove network backend for netdev %s",
@ -1016,7 +996,7 @@ try_remove:
} else {
char *hostnet_name;
if (virAsprintf(&hostnet_name, "host%s", net->info.alias) < 0)
goto no_memory;
goto cleanup;
qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorRemoveHostNetwork(priv->mon, vlan, hostnet_name) < 0)
VIR_WARN("Failed to remove network backend for vlan %d, net %s",
@ -1025,10 +1005,6 @@ try_remove:
VIR_FREE(hostnet_name);
}
goto cleanup;
no_memory:
virReportOOMError();
goto cleanup;
}
@ -1043,10 +1019,8 @@ int qemuDomainAttachHostPciDevice(virQEMUDriverPtr driver,
char *configfd_name = NULL;
bool releaseaddr = false;
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0)
return -1;
}
if (qemuPrepareHostdevPCIDevices(driver, vm->def->name, vm->def->uuid,
&hostdev, 1) < 0)
@ -1083,10 +1057,8 @@ int qemuDomainAttachHostPciDevice(virQEMUDriverPtr driver,
configfd = qemuOpenPCIConfig(hostdev);
if (configfd >= 0) {
if (virAsprintf(&configfd_name, "fd-%s",
hostdev->info->alias) < 0) {
virReportOOMError();
hostdev->info->alias) < 0)
goto error;
}
}
}
@ -1162,10 +1134,8 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
goto error;
}
if (VIR_REALLOC_N(vm->def->redirdevs, vm->def->nredirdevs+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->redirdevs, vm->def->nredirdevs+1) < 0)
goto error;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE))
@ -1223,10 +1193,8 @@ int qemuDomainAttachHostUsbDevice(virQEMUDriverPtr driver,
goto cleanup;
}
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs+1) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE))
@ -1291,10 +1259,8 @@ qemuDomainAttachHostScsiDevice(virQEMUDriverPtr driver,
if (!(devstr = qemuBuildSCSIHostdevDevStr(vm->def, hostdev, priv->qemuCaps)))
goto cleanup;
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if ((ret = qemuMonitorAddDrive(priv->mon, drvstr)) == 0) {
@ -2208,10 +2174,8 @@ int qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
/* build the actual drive id string as the disk->info.alias doesn't
* contain the QEMU_DRIVE_HOST_PREFIX that is passed to qemu */
if (virAsprintf(&drivestr, "%s%s",
QEMU_DRIVE_HOST_PREFIX, detach->info.alias) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, detach->info.alias) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
@ -2307,10 +2271,8 @@ int qemuDomainDetachDiskDevice(virQEMUDriverPtr driver,
/* build the actual drive id string as the disk->info.alias doesn't
* contain the QEMU_DRIVE_HOST_PREFIX that is passed to qemu */
if (virAsprintf(&drivestr, "%s%s",
QEMU_DRIVE_HOST_PREFIX, detach->info.alias) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, detach->info.alias) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if (qemuMonitorDelDevice(priv->mon, detach->info.alias) < 0) {
@ -2829,10 +2791,8 @@ qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
goto cleanup;
}
if (virAsprintf(&hostnet_name, "host%s", detach->info.alias) < 0) {
virReportOOMError();
if (virAsprintf(&hostnet_name, "host%s", detach->info.alias) < 0)
goto cleanup;
}
qemuDomainObjEnterMonitor(driver, vm);
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {

View File

@ -231,7 +231,7 @@ qemuDomainExtractTLSSubject(const char *certdir)
size_t subjectlen;
if (virAsprintf(&certfile, "%s/server-cert.pem", certdir) < 0)
goto no_memory;
goto error;
if (virFileReadAll(certfile, 8192, &pemdata) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@ -260,7 +260,7 @@ qemuDomainExtractTLSSubject(const char *certdir)
subjectlen = 1024;
if (VIR_ALLOC_N(subject, subjectlen+1) < 0)
goto no_memory;
goto error;
gnutls_x509_crt_get_dn(cert, subject, &subjectlen);
subject[subjectlen] = '\0';
@ -270,8 +270,6 @@ qemuDomainExtractTLSSubject(const char *certdir)
return subject;
no_memory:
virReportOOMError();
error:
VIR_FREE(certfile);
VIR_FREE(pemdata);
@ -288,7 +286,7 @@ qemuMigrationCookieGraphicsAlloc(virQEMUDriverPtr driver,
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
if (VIR_ALLOC(mig) < 0)
goto no_memory;
goto error;
mig->type = def->type;
if (mig->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC) {
@ -324,8 +322,6 @@ qemuMigrationCookieGraphicsAlloc(virQEMUDriverPtr driver,
virObjectUnref(cfg);
return mig;
no_memory:
virReportOOMError();
error:
qemuMigrationCookieGraphicsFree(mig);
virObjectUnref(cfg);
@ -341,12 +337,12 @@ qemuMigrationCookieNetworkAlloc(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
int i;
if (VIR_ALLOC(mig) < 0)
goto no_memory;
goto error;
mig->nnets = def->nnets;
if (VIR_ALLOC_N(mig->net, def->nnets) <0)
goto no_memory;
goto error;
for (i = 0; i < def->nnets; i++) {
virDomainNetDefPtr netptr;
@ -379,8 +375,6 @@ qemuMigrationCookieNetworkAlloc(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
}
return mig;
no_memory:
virReportOOMError();
error:
qemuMigrationCookieNetworkFree(mig);
return NULL;
@ -394,7 +388,7 @@ qemuMigrationCookieNew(virDomainObjPtr dom)
const char *name;
if (VIR_ALLOC(mig) < 0)
goto no_memory;
goto error;
if (priv->origname)
name = priv->origname;
@ -414,8 +408,6 @@ qemuMigrationCookieNew(virDomainObjPtr dom)
return mig;
no_memory:
virReportOOMError();
error:
qemuMigrationCookieFree(mig);
return NULL;
@ -533,10 +525,8 @@ qemuMigrationCookieAddNBD(qemuMigrationCookiePtr mig,
/* It is not a bug if there already is a NBD data */
if (!mig->nbd &&
VIR_ALLOC(mig->nbd) < 0) {
virReportOOMError();
VIR_ALLOC(mig->nbd) < 0)
return -1;
}
mig->nbd->port = priv->nbdPort;
mig->flags |= QEMU_MIGRATION_COOKIE_NBD;
@ -686,7 +676,7 @@ qemuMigrationCookieGraphicsXMLParse(xmlXPathContextPtr ctxt)
char *tmp;
if (VIR_ALLOC(grap) < 0)
goto no_memory;
goto error;
if (!(tmp = virXPathString("string(./graphics/@type)", ctxt))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@ -722,8 +712,6 @@ qemuMigrationCookieGraphicsXMLParse(xmlXPathContextPtr ctxt)
return grap;
no_memory:
virReportOOMError();
error:
qemuMigrationCookieGraphicsFree(grap);
return NULL;
@ -741,7 +729,7 @@ qemuMigrationCookieNetworkXMLParse(xmlXPathContextPtr ctxt)
xmlNodePtr save_ctxt = ctxt->node;
if (VIR_ALLOC(optr) < 0)
goto no_memory;
goto error;
if ((n = virXPathNodeSet("./network/interface", ctxt, &interfaces)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@ -751,7 +739,7 @@ qemuMigrationCookieNetworkXMLParse(xmlXPathContextPtr ctxt)
optr->nnets = n;
if (VIR_ALLOC_N(optr->net, optr->nnets) < 0)
goto no_memory;
goto error;
for (i = 0; i < n; i++) {
/* portdata is optional, and may not exist */
@ -772,8 +760,6 @@ cleanup:
ctxt->node = save_ctxt;
return optr;
no_memory:
virReportOOMError();
error:
VIR_FREE(interfaces);
qemuMigrationCookieNetworkFree(optr);
@ -942,10 +928,8 @@ qemuMigrationCookieXMLParse(qemuMigrationCookiePtr mig,
virXPathBoolean("boolean(./nbd)", ctxt)) {
char *port;
if (VIR_ALLOC(mig->nbd) < 0) {
virReportOOMError();
if (VIR_ALLOC(mig->nbd) < 0)
goto error;
}
port = virXPathString("string(./nbd/@port)", ctxt);
if (port && virStrToLong_i(port, NULL, 10, &mig->nbd->port) < 0) {
@ -1131,10 +1115,8 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver,
VIR_FREE(diskAlias);
if (virAsprintf(&diskAlias, "%s%s",
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
goto cleanup;
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_IN) < 0)
@ -1220,10 +1202,8 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
/* escape literal IPv6 address */
if (strchr(host, ':')) {
if (virAsprintf(&hoststr, "[%s]", host) < 0) {
virReportOOMError();
if (virAsprintf(&hoststr, "[%s]", host) < 0)
goto error;
}
} else if (VIR_STRDUP(hoststr, host) < 0) {
goto error;
}
@ -1244,10 +1224,8 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver,
if ((virAsprintf(&diskAlias, "%s%s",
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) ||
(virAsprintf(&nbd_dest, "nbd:%s:%d:exportname=%s",
hoststr, port, diskAlias) < 0)) {
virReportOOMError();
hoststr, port, diskAlias) < 0))
goto error;
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
@ -1329,10 +1307,8 @@ error:
VIR_FREE(diskAlias);
if (virAsprintf(&diskAlias, "%s%s",
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
continue;
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT) == 0) {
if (qemuMonitorBlockJob(priv->mon, diskAlias, NULL, 0,
@ -1394,10 +1370,8 @@ qemuMigrationCancelDriveMirror(qemuMigrationCookiePtr mig,
VIR_FREE(diskAlias);
if (virAsprintf(&diskAlias, "%s%s",
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0)
goto cleanup;
}
if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
@ -2309,10 +2283,8 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver,
/* QEMU will be started with -incoming [::]:port
* or -incoming 0.0.0.0:port
*/
if (virAsprintf(&migrateFrom, "tcp:%s:%d", listenAddr, port) < 0) {
virReportOOMError();
if (virAsprintf(&migrateFrom, "tcp:%s:%d", listenAddr, port) < 0)
goto cleanup;
}
}
if (!(vm = virDomainObjListAdd(driver->domains, *def,
@ -2567,10 +2539,8 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver,
* new targets accept both syntaxes though.
*/
/* Caller frees */
if (virAsprintf(uri_out, "tcp:%s:%d", hostname, this_port) < 0) {
virReportOOMError();
if (virAsprintf(uri_out, "tcp:%s:%d", hostname, this_port) < 0)
goto cleanup;
}
} else {
/* Check the URI starts with "tcp:". We will escape the
* URI when passing it to the qemu monitor, so bad
@ -2585,10 +2555,8 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver,
/* Convert uri_in to well-formed URI with // after tcp: */
if (!(STRPREFIX(uri_in, "tcp://"))) {
if (virAsprintf(&uri_str, "tcp://%s", p) < 0) {
virReportOOMError();
if (virAsprintf(&uri_str, "tcp://%s", p) < 0)
goto cleanup;
}
}
uri = virURIParse(uri_str ? uri_str : uri_in);
@ -2615,10 +2583,8 @@ qemuMigrationPrepareDirect(virQEMUDriverPtr driver,
port = 0;
/* Caller frees */
if (virAsprintf(uri_out, "%s:%d", uri_in, this_port) < 0) {
virReportOOMError();
if (virAsprintf(uri_out, "%s:%d", uri_in, this_port) < 0)
goto cleanup;
}
} else {
this_port = uri->port;
@ -2873,10 +2839,8 @@ static void qemuMigrationIOFunc(void *arg)
VIR_DEBUG("Running migration tunnel; stream=%p, sock=%d",
data->st, data->sock);
if (VIR_ALLOC_N(buffer, TUNNEL_SEND_BUF_SIZE) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(buffer, TUNNEL_SEND_BUF_SIZE) < 0)
goto abrt;
}
fds[0].fd = data->sock;
fds[1].fd = data->wakeupRecvFD;
@ -2982,7 +2946,7 @@ qemuMigrationStartTunnel(virStreamPtr st,
}
if (VIR_ALLOC(io) < 0)
goto no_memory;
goto error;
io->st = st;
io->sock = sock;
@ -2999,8 +2963,6 @@ qemuMigrationStartTunnel(virStreamPtr st,
return io;
no_memory:
virReportOOMError();
error:
VIR_FORCE_CLOSE(wakeupFD[0]);
VIR_FORCE_CLOSE(wakeupFD[1]);
@ -3053,10 +3015,8 @@ qemuMigrationConnect(virQEMUDriverPtr driver,
int ret = -1;
host = spec->dest.host.name;
if (virAsprintf(&port, "%d", spec->dest.host.port) < 0) {
virReportOOMError();
if (virAsprintf(&port, "%d", spec->dest.host.port) < 0)
return -1;
}
spec->destType = MIGRATION_DEST_FD;
spec->dest.fd.qemu = -1;
@ -3355,10 +3315,8 @@ static int doNativeMigrate(virQEMUDriverPtr driver,
if (STRPREFIX(uri, "tcp:") && !STRPREFIX(uri, "tcp://")) {
char *tmp;
/* HACK: source host generates bogus URIs, so fix them up */
if (virAsprintf(&tmp, "tcp://%s", uri + strlen("tcp:")) < 0) {
virReportOOMError();
if (virAsprintf(&tmp, "tcp://%s", uri + strlen("tcp:")) < 0)
return -1;
}
uribits = virURIParse(tmp);
VIR_FREE(tmp);
} else {
@ -3450,10 +3408,8 @@ static int doTunnelMigrate(virQEMUDriverPtr driver,
if (virAsprintf(&spec.dest.unix_socket.file,
"%s/qemu.tunnelmigrate.src.%s",
cfg->libDir, vm->def->name) < 0) {
virReportOOMError();
cfg->libDir, vm->def->name) < 0)
goto cleanup;
}
if (virNetSocketNewListenUNIX(spec.dest.unix_socket.file, 0700,
cfg->user, cfg->group,

View File

@ -489,10 +489,8 @@ qemuMonitorIORead(qemuMonitorPtr mon)
if (avail < 1024) {
if (VIR_REALLOC_N(mon->buffer,
mon->bufferLength + 1024) < 0) {
virReportOOMError();
mon->bufferLength + 1024) < 0)
return -1;
}
mon->bufferLength += 1024;
avail += 1024;
}
@ -864,10 +862,7 @@ char *qemuMonitorNextCommandID(qemuMonitorPtr mon)
{
char *id;
if (virAsprintf(&id, "libvirt-%d", ++mon->nextSerial) < 0) {
virReportOOMError();
return NULL;
}
ignore_value(virAsprintf(&id, "libvirt-%d", ++mon->nextSerial));
return id;
}
@ -1962,10 +1957,8 @@ int qemuMonitorMigrateToHost(qemuMonitorPtr mon,
}
if (virAsprintf(&uri, "tcp:%s:%d", hostname, port) < 0) {
virReportOOMError();
if (virAsprintf(&uri, "tcp:%s:%d", hostname, port) < 0)
return -1;
}
if (mon->json)
ret = qemuMonitorJSONMigrate(mon, flags, uri);
@ -1994,15 +1987,11 @@ int qemuMonitorMigrateToCommand(qemuMonitorPtr mon,
}
argstr = virArgvToString(argv);
if (!argstr) {
virReportOOMError();
if (!argstr)
goto cleanup;
}
if (virAsprintf(&dest, "exec:%s", argstr) < 0) {
virReportOOMError();
if (virAsprintf(&dest, "exec:%s", argstr) < 0)
goto cleanup;
}
if (mon->json)
ret = qemuMonitorJSONMigrate(mon, flags, dest);
@ -2043,10 +2032,8 @@ int qemuMonitorMigrateToFile(qemuMonitorPtr mon,
}
argstr = virArgvToString(argv);
if (!argstr) {
virReportOOMError();
if (!argstr)
goto cleanup;
}
/* Migrate to file */
virBufferEscapeShell(&buf, target);
@ -2068,10 +2055,8 @@ int qemuMonitorMigrateToFile(qemuMonitorPtr mon,
offset / QEMU_MONITOR_MIGRATE_TO_FILE_BS,
QEMU_MONITOR_MIGRATE_TO_FILE_TRANSFER_SIZE,
QEMU_MONITOR_MIGRATE_TO_FILE_TRANSFER_SIZE,
safe_target) < 0) {
virReportOOMError();
safe_target) < 0)
goto cleanup;
}
if (mon->json)
ret = qemuMonitorJSONMigrate(mon, flags, dest);
@ -2100,10 +2085,8 @@ int qemuMonitorMigrateToUnix(qemuMonitorPtr mon,
return -1;
}
if (virAsprintf(&dest, "unix:%s", unixfile) < 0) {
virReportOOMError();
if (virAsprintf(&dest, "unix:%s", unixfile) < 0)
return -1;
}
if (mon->json)
ret = qemuMonitorJSONMigrate(mon, flags, dest);

View File

@ -252,10 +252,8 @@ qemuMonitorJSONCommandWithFd(qemuMonitorPtr mon,
if (!(cmdstr = virJSONValueToString(cmd, false)))
goto cleanup;
if (virAsprintf(&msg.txBuffer, "%s\r\n", cmdstr) < 0) {
virReportOOMError();
if (virAsprintf(&msg.txBuffer, "%s\r\n", cmdstr) < 0)
goto cleanup;
}
msg.txLength = strlen(msg.txBuffer);
msg.txFD = scm_fd;
@ -409,11 +407,11 @@ qemuMonitorJSONMakeCommandRaw(bool wrap, const char *cmdname, ...)
va_start(args, cmdname);
if (!(obj = virJSONValueNewObject()))
goto no_memory;
goto error;
if (virJSONValueObjectAppendString(obj, wrap ? "type" : "execute",
cmdname) < 0)
goto no_memory;
goto error;
while ((key = va_arg(args, char *)) != NULL) {
int ret;
@ -432,7 +430,7 @@ qemuMonitorJSONMakeCommandRaw(bool wrap, const char *cmdname, ...)
if (!jargs &&
!(jargs = virJSONValueNewObject()))
goto no_memory;
goto error;
/* This doesn't support maps, but no command uses those. */
switch (type) {
@ -488,19 +486,17 @@ qemuMonitorJSONMakeCommandRaw(bool wrap, const char *cmdname, ...)
goto error;
}
if (ret < 0)
goto no_memory;
goto error;
}
if (jargs &&
virJSONValueObjectAppend(obj, wrap ? "data" : "arguments", jargs) < 0)
goto no_memory;
goto error;
va_end(args);
return obj;
no_memory:
virReportOOMError();
error:
virJSONValueFree(obj);
virJSONValueFree(jargs);
@ -533,7 +529,7 @@ qemuMonitorJSONKeywordStringToJSON(const char *str, const char *firstkeyword)
int i;
if (!(ret = virJSONValueNewObject()))
goto no_memory;
goto error;
nkeywords = qemuParseKeywords(str, &keywords, &values, 1);
@ -550,19 +546,17 @@ qemuMonitorJSONKeywordStringToJSON(const char *str, const char *firstkeyword)
/* This 3rd arg isn't a typo - the way the parser works is
* that the value ended up in the keyword field */
if (virJSONValueObjectAppendString(ret, firstkeyword, keywords[i]) < 0)
goto no_memory;
goto error;
}
} else {
if (virJSONValueObjectAppendString(ret, keywords[i], values[i]) < 0)
goto no_memory;
goto error;
}
}
qemuFreeKeywords(nkeywords, keywords, values);
return ret;
no_memory:
virReportOOMError();
error:
qemuFreeKeywords(nkeywords, keywords, values);
virJSONValueFree(ret);
@ -1202,10 +1196,8 @@ qemuMonitorJSONExtractCPUInfo(virJSONValuePtr reply,
goto cleanup;
}
if (VIR_REALLOC_N(threads, ncpus) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(threads, ncpus) < 0)
goto cleanup;
}
for (i = 0; i < ncpus; i++) {
virJSONValuePtr entry = virJSONValueArrayGet(data, i);
@ -1545,10 +1537,8 @@ int qemuMonitorJSONGetBlockInfo(qemuMonitorPtr mon,
if (STRPREFIX(thisdev, QEMU_DRIVE_HOST_PREFIX))
thisdev += strlen(QEMU_DRIVE_HOST_PREFIX);
if (VIR_ALLOC(info) < 0) {
virReportOOMError();
if (VIR_ALLOC(info) < 0)
goto cleanup;
}
if (virHashAddEntry(table, thisdev, info) < 0) {
VIR_FREE(info);
@ -2885,10 +2875,8 @@ int qemuMonitorJSONAddNetdev(qemuMonitorPtr mon,
if (!args)
goto cleanup;
if (virJSONValueObjectAppend(cmd, "arguments", args) < 0) {
virReportOOMError();
if (virJSONValueObjectAppend(cmd, "arguments", args) < 0)
goto cleanup;
}
args = NULL; /* obj owns reference to args now */
ret = qemuMonitorJSONCommand(mon, cmd, &reply);
@ -3082,10 +3070,8 @@ int qemuMonitorJSONAddDevice(qemuMonitorPtr mon,
if (!args)
goto cleanup;
if (virJSONValueObjectAppend(cmd, "arguments", args) < 0) {
virReportOOMError();
if (virJSONValueObjectAppend(cmd, "arguments", args) < 0)
goto cleanup;
}
args = NULL; /* obj owns reference to args now */
ret = qemuMonitorJSONCommand(mon, cmd, &reply);
@ -3139,10 +3125,8 @@ int qemuMonitorJSONSetDrivePassphrase(qemuMonitorPtr mon,
virJSONValuePtr reply = NULL;
char *drive;
if (virAsprintf(&drive, "%s%s", QEMU_DRIVE_HOST_PREFIX, alias) < 0) {
virReportOOMError();
if (virAsprintf(&drive, "%s%s", QEMU_DRIVE_HOST_PREFIX, alias) < 0)
return -1;
}
cmd = qemuMonitorJSONMakeCommand("block_passwd",
"s:device", drive,
@ -3204,9 +3188,7 @@ qemuMonitorJSONDiskSnapshot(qemuMonitorPtr mon, virJSONValuePtr actions,
return -1;
if (actions) {
if (virJSONValueArrayAppend(actions, cmd) < 0) {
virReportOOMError();
} else {
if (virJSONValueArrayAppend(actions, cmd) == 0) {
ret = 0;
cmd = NULL;
}
@ -3412,7 +3394,7 @@ int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
/* create the key data array */
if (!(keys = virJSONValueNewArray()))
goto no_memory;
goto cleanup;
for (i = 0; i < nkeycodes; i++) {
if (keycodes[i] > 0xffff) {
@ -3423,18 +3405,18 @@ int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
/* create single key object */
if (!(key = virJSONValueNewObject()))
goto no_memory;
goto cleanup;
/* Union KeyValue has two types, use the generic one */
if (virJSONValueObjectAppendString(key, "type", "number") < 0)
goto no_memory;
goto cleanup;
/* with the keycode */
if (virJSONValueObjectAppendNumberInt(key, "data", keycodes[i]) < 0)
goto no_memory;
goto cleanup;
if (virJSONValueArrayAppend(keys, key) < 0)
goto no_memory;
goto cleanup;
key = NULL;
@ -3463,10 +3445,6 @@ cleanup:
virJSONValueFree(keys);
virJSONValueFree(key);
return ret;
no_memory:
virReportOOMError();
goto cleanup;
}
int qemuMonitorJSONScreendump(qemuMonitorPtr mon,
@ -4007,20 +3985,16 @@ int qemuMonitorJSONGetMachines(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(infolist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(infolist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
const char *tmp;
qemuMonitorMachineInfoPtr info;
if (VIR_ALLOC(info) < 0) {
virReportOOMError();
if (VIR_ALLOC(info) < 0)
goto cleanup;
}
infolist[i] = info;
@ -4123,10 +4097,8 @@ int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(cpulist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(cpulist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4193,10 +4165,8 @@ int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(commandlist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(commandlist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4268,10 +4238,8 @@ int qemuMonitorJSONGetEvents(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(eventlist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(eventlist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4382,10 +4350,8 @@ qemuMonitorJSONGetCommandLineOptionParameters(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(paramlist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(paramlist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4509,10 +4475,8 @@ int qemuMonitorJSONGetObjectTypes(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(typelist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(typelist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4587,10 +4551,8 @@ int qemuMonitorJSONGetObjectProps(qemuMonitorPtr mon,
}
/* null-terminated list */
if (VIR_ALLOC_N(proplist, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(proplist, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);
@ -4740,18 +4702,18 @@ qemuMonitorJSONSetMigrationCapability(qemuMonitorPtr mon,
goto cleanup;
if (!(cap = virJSONValueNewObject()))
goto no_memory;
goto cleanup;
if (virJSONValueObjectAppendString(
cap, "capability",
qemuMonitorMigrationCapsTypeToString(capability)) < 0)
goto no_memory;
goto cleanup;
if (virJSONValueObjectAppendBoolean(cap, "state", 1) < 0)
goto no_memory;
goto cleanup;
if (virJSONValueArrayAppend(caps, cap) < 0)
goto no_memory;
goto cleanup;
cap = NULL;
@ -4774,10 +4736,6 @@ cleanup:
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
no_memory:
virReportOOMError();
goto cleanup;
}
int
@ -4794,19 +4752,15 @@ qemuMonitorJSONNBDServerStart(qemuMonitorPtr mon,
if (!(data = virJSONValueNewObject()) ||
!(addr = virJSONValueNewObject()) ||
(virAsprintf(&port_str, "%u", port) < 0)) {
virReportOOMError();
(virAsprintf(&port_str, "%u", port) < 0))
goto cleanup;
}
/* port is really expected as a string here by qemu */
if (virJSONValueObjectAppendString(data, "host", host) < 0 ||
virJSONValueObjectAppendString(data, "port", port_str) < 0 ||
virJSONValueObjectAppendString(addr, "type", "inet") < 0 ||
virJSONValueObjectAppend(addr, "data", data) < 0) {
virReportOOMError();
virJSONValueObjectAppend(addr, "data", data) < 0)
goto cleanup;
}
/* From now on, @data is part of @addr */
data = NULL;
@ -4929,10 +4883,8 @@ qemuMonitorJSONGetStringArray(qemuMonitorPtr mon, const char *qmpCmd,
}
/* null-terminated list */
if (VIR_ALLOC_N(list, n + 1) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(list, n + 1) < 0)
goto cleanup;
}
for (i = 0; i < n; i++) {
virJSONValuePtr child = virJSONValueArrayGet(data, i);

View File

@ -190,10 +190,8 @@ int qemuMonitorTextIOProcess(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
* BASIC_PROMPT we can reasonably reliably cope */
if (want) {
if (VIR_REALLOC_N(msg->rxBuffer,
msg->rxLength + want + 1) < 0) {
virReportOOMError();
msg->rxLength + want + 1) < 0)
return -1;
}
memcpy(msg->rxBuffer + msg->rxLength, start, want);
msg->rxLength += want;
msg->rxBuffer[msg->rxLength] = '\0';
@ -233,10 +231,8 @@ qemuMonitorTextCommandWithHandler(qemuMonitorPtr mon,
memset(&msg, 0, sizeof(msg));
if (virAsprintf(&msg.txBuffer, "%s\r", cmd) < 0) {
virReportOOMError();
if (virAsprintf(&msg.txBuffer, "%s\r", cmd) < 0)
return -1;
}
msg.txLength = strlen(msg.txBuffer);
msg.txFD = scm_fd;
msg.passwordHandler = passwordHandler;
@ -346,7 +342,6 @@ qemuMonitorSendDiskPassphrase(qemuMonitorPtr mon,
msg->txLength + passphrase_len + 1 + 1) < 0) {
memset(passphrase, 0, passphrase_len);
VIR_FREE(passphrase);
virReportOOMError();
return -1;
}
@ -457,10 +452,8 @@ int qemuMonitorTextSetLink(qemuMonitorPtr mon, const char *name, enum virDomainN
else
st_str = "on";
if (virAsprintf(&cmd, "set_link %s %s", name, st_str) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "set_link %s %s", name, st_str) < 0)
goto error;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0)
goto error;
@ -768,10 +761,8 @@ int qemuMonitorTextGetBlockInfo(qemuMonitorPtr mon,
dev = p;
p = strchr(p, ':');
if (p && p < eol && *(p + 1) == ' ') {
if (VIR_ALLOC(info) < 0) {
virReportOOMError();
if (VIR_ALLOC(info) < 0)
goto cleanup;
}
*p = '\0';
p += 2;
@ -1057,10 +1048,8 @@ int qemuMonitorTextBlockResize(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "block_resize %s %lluB", device, size) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "block_resize %s %lluB", device, size) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1091,10 +1080,8 @@ qemuMonitorSendVNCPassphrase(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
/* Enlarge transmit buffer to allow for the extra data
* to be sent back */
if (VIR_REALLOC_N(msg->txBuffer,
msg->txLength + passphrase_len + 1 + 1) < 0) {
virReportOOMError();
msg->txLength + passphrase_len + 1 + 1) < 0)
return -1;
}
/* Queue the password for sending */
memcpy(msg->txBuffer + msg->txLength,
@ -1135,10 +1122,8 @@ int qemuMonitorTextSetPassword(qemuMonitorPtr mon,
int ret = -1;
if (virAsprintf(&cmd, "set_password %s \"%s\" %s",
protocol, password, action_if_connected) < 0) {
virReportOOMError();
protocol, password, action_if_connected) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1166,10 +1151,8 @@ int qemuMonitorTextExpirePassword(qemuMonitorPtr mon,
int ret = -1;
if (virAsprintf(&cmd, "expire_password %s %s",
protocol, expire_time) < 0) {
virReportOOMError();
protocol, expire_time) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1202,10 +1185,8 @@ int qemuMonitorTextSetBalloon(qemuMonitorPtr mon,
* 'newmem' is in KB, QEMU monitor works in MB, and we all wish
* we just worked in bytes with unsigned long long everywhere.
*/
if (virAsprintf(&cmd, "balloon %lu", VIR_DIV_UP(newmem, 1024)) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "balloon %lu", VIR_DIV_UP(newmem, 1024)) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0) {
VIR_FREE(cmd);
@ -1237,10 +1218,8 @@ int qemuMonitorTextSetCPU(qemuMonitorPtr mon, int cpu, bool online)
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "cpu_set %d %s", cpu, online ? "online" : "offline") < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "cpu_set %d %s", cpu, online ? "online" : "offline") < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0) {
VIR_FREE(cmd);
@ -1270,10 +1249,8 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "eject %s%s", force ? "-f " : "", dev_name) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "eject %s%s", force ? "-f " : "", dev_name) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1306,15 +1283,11 @@ int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
char *safepath = NULL;
int ret = -1;
if (!(safepath = qemuMonitorEscapeArg(newmedia))) {
virReportOOMError();
if (!(safepath = qemuMonitorEscapeArg(newmedia)))
goto cleanup;
}
if (virAsprintf(&cmd, "change %s \"%s\"", dev_name, safepath) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "change %s \"%s\"", dev_name, safepath) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1355,15 +1328,11 @@ static int qemuMonitorTextSaveMemory(qemuMonitorPtr mon,
char *safepath = NULL;
int ret = -1;
if (!(safepath = qemuMonitorEscapeArg(path))) {
virReportOOMError();
if (!(safepath = qemuMonitorEscapeArg(path)))
goto cleanup;
}
if (virAsprintf(&cmd, "%s %llu %zi \"%s\"", cmdtype, offset, length, safepath) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "%s %llu %zi \"%s\"", cmdtype, offset, length, safepath) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1404,10 +1373,8 @@ int qemuMonitorTextSetMigrationSpeed(qemuMonitorPtr mon,
char *info = NULL;
int ret = -1;
if (virAsprintf(&cmd, "migrate_set_speed %lum", bandwidth) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "migrate_set_speed %lum", bandwidth) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0)
goto cleanup;
@ -1428,10 +1395,8 @@ int qemuMonitorTextSetMigrationDowntime(qemuMonitorPtr mon,
char *info = NULL;
int ret = -1;
if (virAsprintf(&cmd, "migrate_set_downtime %llums", downtime) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "migrate_set_downtime %llums", downtime) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0)
goto cleanup;
@ -1592,10 +1557,8 @@ int qemuMonitorTextMigrate(qemuMonitorPtr mon,
virBuffer extra = VIR_BUFFER_INITIALIZER;
char *extrastr = NULL;
if (!safedest) {
virReportOOMError();
if (!safedest)
return -1;
}
if (flags & QEMU_MONITOR_MIGRATE_BACKGROUND)
virBufferAddLit(&extra, " -d");
@ -1611,10 +1574,8 @@ int qemuMonitorTextMigrate(qemuMonitorPtr mon,
extrastr = virBufferContentAndReset(&extra);
if (virAsprintf(&cmd, "migrate %s\"%s\"", extrastr ? extrastr : "",
safedest) < 0) {
virReportOOMError();
safedest) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0)
goto cleanup;
@ -1668,10 +1629,8 @@ int qemuMonitorTextGraphicsRelocate(qemuMonitorPtr mon,
if (virAsprintf(&cmd, "client_migrate_info %s %s %d %d %s",
type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE ? "spice" : "vnc",
hostname, port, tlsPort, tlsSubject ? tlsSubject : "") < 0) {
virReportOOMError();
hostname, port, tlsPort, tlsSubject ? tlsSubject : "") < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0) {
VIR_FREE(cmd);
@ -1693,15 +1652,11 @@ int qemuMonitorTextAddUSBDisk(qemuMonitorPtr mon,
char *info = NULL;
safepath = qemuMonitorEscapeArg(path);
if (!safepath) {
virReportOOMError();
if (!safepath)
return -1;
}
if (virAsprintf(&cmd, "usb_add disk:%s", safepath) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "usb_add disk:%s", safepath) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &info) < 0)
goto cleanup;
@ -1731,10 +1686,8 @@ static int qemuMonitorTextAddUSBDevice(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "usb_add %s", addr) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "usb_add %s", addr) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1763,10 +1716,8 @@ int qemuMonitorTextAddUSBDeviceExact(qemuMonitorPtr mon,
int ret;
char *addr;
if (virAsprintf(&addr, "host:%.3d.%.3d", bus, dev) < 0) {
virReportOOMError();
if (virAsprintf(&addr, "host:%.3d.%.3d", bus, dev) < 0)
return -1;
}
ret = qemuMonitorTextAddUSBDevice(mon, addr);
@ -1781,10 +1732,8 @@ int qemuMonitorTextAddUSBDeviceMatch(qemuMonitorPtr mon,
int ret;
char *addr;
if (virAsprintf(&addr, "host:%.4x:%.4x", vendor, product) < 0) {
virReportOOMError();
if (virAsprintf(&addr, "host:%.4x:%.4x", vendor, product) < 0)
return -1;
}
ret = qemuMonitorTextAddUSBDevice(mon, addr);
@ -1869,10 +1818,8 @@ int qemuMonitorTextAddPCIHostDevice(qemuMonitorPtr mon,
/* XXX hostAddr->domain */
if (virAsprintf(&cmd, "pci_add pci_addr=auto host host=%.2x:%.2x.%.1x",
hostAddr->bus, hostAddr->slot, hostAddr->function) < 0) {
virReportOOMError();
hostAddr->bus, hostAddr->slot, hostAddr->function) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1910,17 +1857,13 @@ int qemuMonitorTextAddPCIDisk(qemuMonitorPtr mon,
int ret = -1;
safe_path = qemuMonitorEscapeArg(path);
if (!safe_path) {
virReportOOMError();
if (!safe_path)
return -1;
}
try_command:
if (virAsprintf(&cmd, "pci_add %s storage file=%s,if=%s",
(tryOldSyntax ? "0": "pci_addr=auto"), safe_path, bus) < 0) {
virReportOOMError();
(tryOldSyntax ? "0": "pci_addr=auto"), safe_path, bus) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1956,10 +1899,8 @@ int qemuMonitorTextAddPCINetwork(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "pci_add pci_addr=auto nic %s", nicstr) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "pci_add pci_addr=auto nic %s", nicstr) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -1989,17 +1930,13 @@ int qemuMonitorTextRemovePCIDevice(qemuMonitorPtr mon,
try_command:
if (tryOldSyntax) {
if (virAsprintf(&cmd, "pci_del 0 %.2x", guestAddr->slot) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "pci_del 0 %.2x", guestAddr->slot) < 0)
goto cleanup;
}
} else {
/* XXX function ? */
if (virAsprintf(&cmd, "pci_del pci_addr=%.4x:%.2x:%.2x",
guestAddr->domain, guestAddr->bus, guestAddr->slot) < 0) {
virReportOOMError();
guestAddr->domain, guestAddr->bus, guestAddr->slot) < 0)
goto cleanup;
}
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
@ -2042,10 +1979,8 @@ int qemuMonitorTextSendFileHandle(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "getfd %s", fdname) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "getfd %s", fdname) < 0)
return -1;
}
if (qemuMonitorHMPCommandWithFd(mon, cmd, fd, &reply) < 0)
goto cleanup;
@ -2082,10 +2017,8 @@ int qemuMonitorTextCloseFileHandle(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "closefd %s", fdname) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "closefd %s", fdname) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2115,10 +2048,8 @@ int qemuMonitorTextAddHostNetwork(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "host_net_add %s", netstr) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "host_net_add %s", netstr) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2147,10 +2078,8 @@ int qemuMonitorTextRemoveHostNetwork(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "host_net_remove %d %s", vlan, netname) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "host_net_remove %d %s", vlan, netname) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2173,10 +2102,8 @@ int qemuMonitorTextAddNetdev(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "netdev_add %s", netdevstr) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "netdev_add %s", netdevstr) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2199,10 +2126,8 @@ int qemuMonitorTextRemoveNetdev(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "netdev_del %s", alias) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "netdev_del %s", alias) < 0)
return -1;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2311,10 +2236,8 @@ int qemuMonitorTextAttachPCIDiskController(qemuMonitorPtr mon,
try_command:
if (virAsprintf(&cmd, "pci_add %s storage if=%s",
(tryOldSyntax ? "0": "pci_addr=auto"), bus) < 0) {
virReportOOMError();
(tryOldSyntax ? "0": "pci_addr=auto"), bus) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2398,19 +2321,15 @@ int qemuMonitorTextAttachDrive(qemuMonitorPtr mon,
bool tryOldSyntax = false;
safe_str = qemuMonitorEscapeArg(drivestr);
if (!safe_str) {
virReportOOMError();
if (!safe_str)
return -1;
}
try_command:
if (virAsprintf(&cmd, "drive_add %s%.2x:%.2x:%.2x %s",
(tryOldSyntax ? "" : "pci_addr="),
controllerAddr->domain, controllerAddr->bus,
controllerAddr->slot, safe_str) < 0) {
virReportOOMError();
controllerAddr->slot, safe_str) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2538,10 +2457,8 @@ int qemuMonitorTextGetAllPCIAddresses(qemuMonitorPtr mon,
p++;
GET_INT(p, 16, product);
if (VIR_REALLOC_N(addrs, naddrs+1) < 0) {
virReportOOMError();
if (VIR_REALLOC_N(addrs, naddrs+1) < 0)
goto error;
}
addrs[naddrs].addr.domain = 0;
addrs[naddrs].addr.bus = bus;
@ -2579,15 +2496,11 @@ int qemuMonitorTextDelDevice(qemuMonitorPtr mon,
char *safedev;
int ret = -1;
if (!(safedev = qemuMonitorEscapeArg(devalias))) {
virReportOOMError();
if (!(safedev = qemuMonitorEscapeArg(devalias)))
goto cleanup;
}
if (virAsprintf(&cmd, "device_del %s", safedev) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "device_del %s", safedev) < 0)
goto cleanup;
}
VIR_DEBUG("TextDelDevice devalias=%s", devalias);
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
@ -2617,15 +2530,11 @@ int qemuMonitorTextAddDevice(qemuMonitorPtr mon,
char *safedev;
int ret = -1;
if (!(safedev = qemuMonitorEscapeArg(devicestr))) {
virReportOOMError();
if (!(safedev = qemuMonitorEscapeArg(devicestr)))
goto cleanup;
}
if (virAsprintf(&cmd, "device_add %s", safedev) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "device_add %s", safedev) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2665,17 +2574,13 @@ int qemuMonitorTextAddDrive(qemuMonitorPtr mon,
char *safe_str;
safe_str = qemuMonitorEscapeArg(drivestr);
if (!safe_str) {
virReportOOMError();
if (!safe_str)
return -1;
}
/* 'dummy' here is just a placeholder since there is no PCI
* address required when attaching drives to a controller */
if (virAsprintf(&cmd, "drive_add dummy %s", safe_str) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "drive_add dummy %s", safe_str) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2712,15 +2617,11 @@ int qemuMonitorTextDriveDel(qemuMonitorPtr mon,
int ret = -1;
VIR_DEBUG("TextDriveDel drivestr=%s", drivestr);
if (!(safedev = qemuMonitorEscapeArg(drivestr))) {
virReportOOMError();
if (!(safedev = qemuMonitorEscapeArg(drivestr)))
goto cleanup;
}
if (virAsprintf(&cmd, "drive_del %s", safedev) < 0) {
virReportOOMError();
if (virAsprintf(&cmd, "drive_del %s", safedev) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2761,16 +2662,12 @@ int qemuMonitorTextSetDrivePassphrase(qemuMonitorPtr mon,
char *safe_str;
safe_str = qemuMonitorEscapeArg(passphrase);
if (!safe_str) {
virReportOOMError();
if (!safe_str)
return -1;
}
if (virAsprintf(&cmd, "block_passwd %s%s \"%s\"",
QEMU_DRIVE_HOST_PREFIX, alias, safe_str) < 0) {
virReportOOMError();
QEMU_DRIVE_HOST_PREFIX, alias, safe_str) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -2802,10 +2699,8 @@ int qemuMonitorTextCreateSnapshot(qemuMonitorPtr mon, const char *name)
char *safename;
if (!(safename = qemuMonitorEscapeArg(name)) ||
virAsprintf(&cmd, "savevm \"%s\"", safename) < 0) {
virReportOOMError();
virAsprintf(&cmd, "savevm \"%s\"", safename) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply))
goto cleanup;
@ -2847,10 +2742,8 @@ int qemuMonitorTextLoadSnapshot(qemuMonitorPtr mon, const char *name)
char *safename;
if (!(safename = qemuMonitorEscapeArg(name)) ||
virAsprintf(&cmd, "loadvm \"%s\"", safename) < 0) {
virReportOOMError();
virAsprintf(&cmd, "loadvm \"%s\"", safename) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply))
goto cleanup;
@ -2902,10 +2795,8 @@ int qemuMonitorTextDeleteSnapshot(qemuMonitorPtr mon, const char *name)
char *safename;
if (!(safename = qemuMonitorEscapeArg(name)) ||
virAsprintf(&cmd, "delvm \"%s\"", safename) < 0) {
virReportOOMError();
virAsprintf(&cmd, "delvm \"%s\"", safename) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply))
goto cleanup;
@ -2940,10 +2831,8 @@ int qemuMonitorTextArbitraryCommand(qemuMonitorPtr mon, const char *cmd,
char *safecmd = NULL;
int ret;
if (!(safecmd = qemuMonitorEscapeArg(cmd))) {
virReportOOMError();
if (!(safecmd = qemuMonitorEscapeArg(cmd)))
return -1;
}
ret = qemuMonitorHMPCommand(mon, safecmd, reply);
@ -3032,10 +2921,8 @@ int qemuMonitorTextScreendump(qemuMonitorPtr mon, const char *file)
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "screendump %s", file) < 0){
virReportOOMError();
if (virAsprintf(&cmd, "screendump %s", file) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -3063,10 +2950,8 @@ int qemuMonitorTextOpenGraphics(qemuMonitorPtr mon,
char *reply = NULL;
int ret = -1;
if (virAsprintf(&cmd, "add_client %s %s %d", protocol, fdname, skipauth ? 0 : 1) < 0){
virReportOOMError();
if (virAsprintf(&cmd, "add_client %s %s %d", protocol, fdname, skipauth ? 0 : 1) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &reply) < 0)
goto cleanup;
@ -3097,10 +2982,8 @@ int qemuMonitorTextSetBlockIoThrottle(qemuMonitorPtr mon,
if (virAsprintf(&cmd, "%s %s %llu %llu %llu %llu %llu %llu", cmd_name,
device, info->total_bytes_sec, info->read_bytes_sec,
info->write_bytes_sec, info->total_iops_sec,
info->read_iops_sec, info->write_iops_sec) < 0) {
virReportOOMError();
info->read_iops_sec, info->write_iops_sec) < 0)
goto cleanup;
}
if (qemuMonitorHMPCommand(mon, cmd, &result) < 0)
goto cleanup;

View File

@ -88,10 +88,8 @@ qemuProcessRemoveDomainStatus(virQEMUDriverPtr driver,
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
int ret = -1;
if (virAsprintf(&file, "%s/%s.xml", cfg->stateDir, vm->def->name) < 0) {
virReportOOMError();
if (virAsprintf(&file, "%s/%s.xml", cfg->stateDir, vm->def->name) < 0)
goto cleanup;
}
if (unlink(file) < 0 && errno != ENOENT && errno != ENOTDIR)
VIR_WARN("Failed to remove domain XML for %s: %s",
@ -465,7 +463,6 @@ qemuProcessGetVolumeQcowPassphrase(virConnectPtr conn,
if (VIR_ALLOC_N(passphrase, size + 1) < 0) {
memset(data, 0, size);
VIR_FREE(data);
virReportOOMError();
goto cleanup;
}
memcpy(passphrase, data, size);
@ -879,8 +876,6 @@ qemuProcessHandleWatchdog(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
vm = NULL;
VIR_FREE(processEvent);
}
} else {
virReportOOMError();
}
}
@ -1023,24 +1018,24 @@ qemuProcessHandleGraphics(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
int i;
if (VIR_ALLOC(localAddr) < 0)
goto no_memory;
goto error;
localAddr->family = localFamily;
if (VIR_STRDUP(localAddr->service, localService) < 0 ||
VIR_STRDUP(localAddr->node, localNode) < 0)
goto error;
if (VIR_ALLOC(remoteAddr) < 0)
goto no_memory;
goto error;
remoteAddr->family = remoteFamily;
if (VIR_STRDUP(remoteAddr->service, remoteService) < 0 ||
VIR_STRDUP(remoteAddr->node, remoteNode) < 0)
goto error;
if (VIR_ALLOC(subject) < 0)
goto no_memory;
goto error;
if (x509dname) {
if (VIR_REALLOC_N(subject->identities, subject->nidentity+1) < 0)
goto no_memory;
goto error;
subject->nidentity++;
if (VIR_STRDUP(subject->identities[subject->nidentity-1].type, "x509dname") < 0 ||
VIR_STRDUP(subject->identities[subject->nidentity-1].name, x509dname) < 0)
@ -1048,7 +1043,7 @@ qemuProcessHandleGraphics(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
}
if (saslUsername) {
if (VIR_REALLOC_N(subject->identities, subject->nidentity+1) < 0)
goto no_memory;
goto error;
subject->nidentity++;
if (VIR_STRDUP(subject->identities[subject->nidentity-1].type, "saslUsername") < 0 ||
VIR_STRDUP(subject->identities[subject->nidentity-1].name, saslUsername) < 0)
@ -1064,8 +1059,6 @@ qemuProcessHandleGraphics(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
return 0;
no_memory:
virReportOOMError();
error:
if (localAddr) {
VIR_FREE(localAddr->service);
@ -1296,10 +1289,8 @@ qemuProcessHandleGuestPanic(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
struct qemuProcessEvent *processEvent;
virObjectLock(vm);
if (VIR_ALLOC(processEvent) < 0) {
virReportOOMError();
if (VIR_ALLOC(processEvent) < 0)
goto cleanup;
}
processEvent->eventType = QEMU_PROCESS_EVENT_GUESTPANIC;
processEvent->action = vm->def->onCrash;
@ -1733,10 +1724,8 @@ qemuProcessWaitForMonitor(virQEMUDriverPtr driver,
if ((logfd = qemuDomainOpenLog(driver, vm, pos)) < 0)
return -1;
if (VIR_ALLOC_N(buf, buf_size) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(buf, buf_size) < 0)
goto closelog;
}
if (qemuProcessReadLogOutput(vm, logfd, buf, buf_size,
qemuProcessFindCharDevicePTYs,
@ -1777,10 +1766,8 @@ cleanup:
if ((logfd = qemuDomainOpenLog(driver, vm, pos)) < 0)
return -1;
if (VIR_ALLOC_N(buf, buf_size) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(buf, buf_size) < 0)
goto closelog;
}
}
len = strlen(buf);
@ -1820,10 +1807,8 @@ qemuProcessDetectVcpuPIDs(virQEMUDriverPtr driver,
virResetLastError();
priv->nvcpupids = 1;
if (VIR_ALLOC_N(priv->vcpupids, priv->nvcpupids) < 0) {
virReportOOMError();
if (VIR_ALLOC_N(priv->vcpupids, priv->nvcpupids) < 0)
return -1;
}
priv->vcpupids[0] = vm->pid;
return 0;
}
@ -1864,10 +1849,8 @@ qemuPrepareCpumap(virQEMUDriverPtr driver,
if (maxcpu > hostcpus)
maxcpu = hostcpus;
if (!(cpumap = virBitmapNew(maxcpu))) {
virReportOOMError();
if (!(cpumap = virBitmapNew(maxcpu)))
return NULL;
}
if (nodemask) {
if (!(caps = virQEMUDriverGetCapabilities(driver, false))) {
@ -2577,13 +2560,8 @@ qemuProcessPrepareMonitorChr(virQEMUDriverConfigPtr cfg,
monConfig->type = VIR_DOMAIN_CHR_TYPE_UNIX;
monConfig->data.nix.listen = true;
if (virAsprintf(&monConfig->data.nix.path, "%s/%s.monitor",
cfg->libDir, vm) < 0) {
virReportOOMError();
return -1;
}
return 0;
return virAsprintf(&monConfig->data.nix.path, "%s/%s.monitor",
cfg->libDir, vm);
}
@ -3172,10 +3150,8 @@ qemuProcessReconnectHelper(virDomainObjPtr obj,
struct qemuProcessReconnectData *src = opaque;
struct qemuProcessReconnectData *data;
if (VIR_ALLOC(data) < 0) {
virReportOOMError();
if (VIR_ALLOC(data) < 0)
return -1;
}
memcpy(data, src, sizeof(*data));
data->payload = obj;
@ -3536,10 +3512,8 @@ int qemuProcessStart(virConnectPtr conn,
if (graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC ||
graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
if (graphics->nListens == 0) {
if (VIR_EXPAND_N(graphics->listens, graphics->nListens, 1) < 0) {
virReportOOMError();
if (VIR_EXPAND_N(graphics->listens, graphics->nListens, 1) < 0)
goto cleanup;
}
graphics->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
if (VIR_STRDUP(graphics->listens[0].address,
graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC ?
@ -3621,10 +3595,8 @@ int qemuProcessStart(virConnectPtr conn,
if (qemuSetupCgroup(driver, vm, nodemask) < 0)
goto cleanup;
if (VIR_ALLOC(priv->monConfig) < 0) {
virReportOOMError();
if (VIR_ALLOC(priv->monConfig) < 0)
goto cleanup;
}
VIR_DEBUG("Preparing monitor state");
if (qemuProcessPrepareMonitorChr(cfg, priv->monConfig, vm->def->name) < 0)
@ -3693,7 +3665,6 @@ int qemuProcessStart(virConnectPtr conn,
}
if ((timestamp = virTimeStringNow()) == NULL) {
virReportOOMError();
goto cleanup;
} else {
if (safewrite(logfile, timestamp, strlen(timestamp)) < 0 ||
@ -4053,9 +4024,7 @@ void qemuProcessStop(virQEMUDriverPtr driver,
VIR_WARN("Unable to open logfile: %s",
virStrerror(errno, ebuf, sizeof(ebuf)));
} else {
if ((timestamp = virTimeStringNow()) == NULL) {
virReportOOMError();
} else {
if ((timestamp = virTimeStringNow()) != NULL) {
if (safewrite(logfile, timestamp, strlen(timestamp)) < 0 ||
safewrite(logfile, SHUTDOWN_POSTFIX,
strlen(SHUTDOWN_POSTFIX)) < 0) {
@ -4336,7 +4305,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
}
seclabeldef->type = VIR_DOMAIN_SECLABEL_STATIC;
if (VIR_ALLOC(seclabel) < 0)
goto no_memory;
goto cleanup;
if (virSecurityManagerGetProcessLabel(driver->securityManager,
vm->def, vm->pid, seclabel) < 0)
goto cleanup;
@ -4380,7 +4349,6 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
}
if ((timestamp = virTimeStringNow()) == NULL) {
virReportOOMError();
goto cleanup;
} else {
if (safewrite(logfile, timestamp, strlen(timestamp)) < 0 ||
@ -4474,8 +4442,6 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
return 0;
no_memory:
virReportOOMError();
cleanup:
/* We jump here if we failed to start the VM for any reason, or
* if we failed to initialize the now running VM. kill it off and