return -1;
}
- if (!(chr->source.data.file.path = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(chr->source.data.file.path, tmp) < 0)
+ return -1;
} else if (virJSONValueObjectHasKey(value, "socket")) {
chr->source.type = VIR_DOMAIN_CHR_TYPE_UNIX;
return -1;
}
- if (!(chr->source.data.nix.path = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(chr->source.data.nix.path, tmp) < 0)
+ return -1;
chr->source.data.nix.listen = false;
} else if (virJSONValueObjectHasKey(value, "real")) {
chr->source.type = VIR_DOMAIN_CHR_TYPE_DEV;
return -1;
}
- if (!(chr->source.data.file.path = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(chr->source.data.file.path, tmp) < 0)
+ return -1;
} else {
parallelsParseError();
return -1;
}
return 0;
-
- no_memory:
- virReportOOMError();
- return -1;
}
static int
return -1;
}
- if (!(disk->src = strdup(tmp))) {
- virReportOOMError();
+ if (VIR_STRDUP(disk->src, tmp) < 0)
return -1;
- }
} else {
disk->type = VIR_DOMAIN_DISK_TYPE_FILE;
return -1;
}
- if (!(disk->src = strdup(tmp))) {
- virReportOOMError();
+ if (VIR_STRDUP(disk->src, tmp) < 0)
return -1;
- }
}
tmp = virJSONValueObjectGetString(value, "port");
/* use device name, shown by prlctl as target device
* for identifying network adapter in virDomainDefineXML */
- if (!(net->ifname = strdup(key))) {
- virReportOOMError();
+ if (VIR_STRDUP(net->ifname, key) < 0)
goto error;
- }
net->type = VIR_DOMAIN_NET_TYPE_NETWORK;
goto error;
}
- if (!(net->data.network.name = strdup(tmp))) {
- virReportOOMError();
+ if (VIR_STRDUP(net->data.network.name, tmp) < 0)
goto error;
- }
} else if (virJSONValueObjectHasKey(value, "type")) {
if (!(tmp = virJSONValueObjectGetString(value, "type"))) {
parallelsParseError();
goto error;
}
- if (!(net->data.network.name = strdup(PARALLELS_ROUTED_NETWORK_NAME))) {
- virReportOOMError();
+ if (VIR_STRDUP(net->data.network.name,
+ PARALLELS_ROUTED_NETWORK_NAME) < 0)
goto error;
- }
} else {
parallelsParseError();
goto error;
gr->nListens = 1;
- if (!(gr->listens[0].address = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(gr->listens[0].address, tmp) < 0)
+ goto cleanup;
gr->listens[0].type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
parallelsParseError();
goto cleanup;
}
- if (!(def->name = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(def->name, tmp) < 0)
+ goto cleanup;
if (!(tmp = virJSONValueObjectGetString(jobj, "ID"))) {
parallelsParseError();
parallelsParseError();
goto cleanup;
}
- if (!(def->description = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(def->description, tmp) < 0)
+ goto cleanup;
if (!(jobj2 = virJSONValueObjectGet(jobj, "Hardware"))) {
parallelsParseError();
}
if (STREQ(tmp, "CT")) {
- if (!(def->os.type = strdup("exe")))
- goto no_memory;
- if (!(def->os.init = strdup("/sbin/init")))
- goto no_memory;
+ if (VIR_STRDUP(def->os.type, "exe") < 0)
+ goto cleanup;
+ if (VIR_STRDUP(def->os.init, "/sbin/init") < 0)
+ goto cleanup;
} else if (STREQ(tmp, "VM")) {
- if (!(def->os.type = strdup("hvm")))
- goto no_memory;
+ if (VIR_STRDUP(def->os.type, "hvm") < 0)
+ goto cleanup;
}
def->os.arch = VIR_ARCH_X86_64;
parallelsParseError();
goto cleanup;
}
- if (!(pdom->uuid = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(pdom->uuid, tmp) < 0)
+ goto cleanup;
if (!(tmp = virJSONValueObjectGetString(jobj, "Home"))) {
parallelsParseError();
goto cleanup;
}
- if (!(pdom->home = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(pdom->home, tmp) < 0)
+ goto cleanup;
if (!(state = virJSONValueObjectGetString(jobj, "State"))) {
parallelsParseError();
goto cleanup;
}
- if (!(ret = strdup(privdom->def->os.type)))
- virReportOOMError();
+ ignore_value(VIR_STRDUP(ret, privdom->def->os.type));
cleanup:
if (privdom)
goto cleanup;
}
- if (!(def->bridge = strdup(last_component(bridgePath)))) {
- virReportOOMError();
+ if (VIR_STRDUP(def->bridge, last_component(bridgePath)) < 0)
goto cleanup;
- }
if (virAsprintf(&bridgeAddressPath, "%s/%s/brport/bridge/address",
SYSFS_NET_DIR, ifname) < 0) {
goto cleanup;
}
- if (!(def->ips[0].family = strdup("ipv4"))) {
- virReportOOMError();
+ if (VIR_STRDUP(def->ips[0].family, "ipv4") < 0)
goto cleanup;
- };
+
if (!(tmp = virJSONValueObjectGetString(jobj2, "IP address"))) {
parallelsParseError();
goto cleanup;
goto cleanup;
}
- if (!(def->name = strdup(tmp)))
- goto no_memory;
+ if (VIR_STRDUP(def->name, tmp) < 0)
+ goto cleanup;
/* Network names are unique in Parallels Cloud Server, so we can make
* an UUID from it */
def->forward.type = VIR_NETWORK_FORWARD_ROUTE;
- if (!(def->name = strdup(PARALLELS_ROUTED_NETWORK_NAME)))
- goto no_memory;
+ if (VIR_STRDUP(def->name, PARALLELS_ROUTED_NETWORK_NAME) < 0)
+ goto cleanup;
if (virUUIDParse(PARALLELS_ROUTED_NETWORK_UUID, def->uuid) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
for (i = 0 ; i < privconn->networks.count && got < nnames ; i++) {
virNetworkObjLock(privconn->networks.objs[i]);
if (virNetworkObjIsActive(privconn->networks.objs[i])) {
- if (!(names[got] = strdup(privconn->networks.objs[i]->def->name))) {
+ if (VIR_STRDUP(names[got], privconn->networks.objs[i]->def->name) < 0) {
virNetworkObjUnlock(privconn->networks.objs[i]);
- virReportOOMError();
goto cleanup;
}
got++;
for (i = 0 ; i < privconn->networks.count && got < nnames ; i++) {
virNetworkObjLock(privconn->networks.objs[i]);
if (!virNetworkObjIsActive(privconn->networks.objs[i])) {
- if (!(names[got] = strdup(privconn->networks.objs[i]->def->name))) {
+ if (VIR_STRDUP(names[got], privconn->networks.objs[i]->def->name) < 0) {
virNetworkObjUnlock(privconn->networks.objs[i]);
- virReportOOMError();
goto cleanup;
}
got++;
bool found = false;
int j;
- if (!(name = strdup(path))) {
- virReportOOMError();
+ if ((!i && VIR_STRDUP(name, path) < 0) ||
+ (i && virAsprintf(&name, "%s-%u", path, i) < 0))
return NULL;
- }
-
- if (i == 0)
- name = strdup(path);
- else
- ignore_value(virAsprintf(&name, "%s-%u", path, i));
-
- if (!name) {
- virReportOOMError();
- return 0;
- }
for (j = 0; j < strlen(name); j++)
if (name[j] == '/')
}
def->type = VIR_STORAGE_POOL_DIR;
- def->target.path = strdup(path);
+ if (VIR_STRDUP(def->target.path, path) < 0)
+ goto error;
if (!(pool = virStoragePoolObjAssignDef(pools, def)))
goto error;
if (!(def->target.path = realpath(diskPath, NULL)))
goto no_memory;
- if (!(def->key = strdup(def->target.path)))
- goto no_memory;
+ if (VIR_STRDUP(def->key, def->target.path) < 0)
+ goto error;
if (VIR_REALLOC_N(pool->volumes.objs, pool->volumes.count + 1) < 0)
goto no_memory;
char *base = NULL;
size_t i;
- if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL)
- goto out_of_memory;
+ if (VIR_STRDUP(base, SYSCONFDIR "/libvirt") < 0)
+ goto error;
/* Configuration path is /etc/libvirt/parallels-storage/... . */
if (virAsprintf(&storageState->configDir,
for (i = 0; i < privconn->pools.count && n < nnames; i++) {
virStoragePoolObjLock(privconn->pools.objs[i]);
if (virStoragePoolObjIsActive(privconn->pools.objs[i]) &&
- !(names[n++] = strdup(privconn->pools.objs[i]->def->name))) {
+ VIR_STRDUP(names[n++], privconn->pools.objs[i]->def->name) < 0) {
virStoragePoolObjUnlock(privconn->pools.objs[i]);
- goto no_memory;
+ goto error;
}
virStoragePoolObjUnlock(privconn->pools.objs[i]);
}
return n;
-no_memory:
- virReportOOMError();
+error:
for (n = 0; n < nnames; n++)
VIR_FREE(names[n]);
parallelsDriverUnlock(privconn);
for (i = 0; i < privconn->pools.count && n < nnames; i++) {
virStoragePoolObjLock(privconn->pools.objs[i]);
if (!virStoragePoolObjIsActive(privconn->pools.objs[i]) &&
- !(names[n++] = strdup(privconn->pools.objs[i]->def->name))) {
+ VIR_STRDUP(names[n++], privconn->pools.objs[i]->def->name) < 0) {
virStoragePoolObjUnlock(privconn->pools.objs[i]);
- goto no_memory;
+ goto error;
}
virStoragePoolObjUnlock(privconn->pools.objs[i]);
}
return n;
-no_memory:
- virReportOOMError();
+error:
for (n = 0; n < nnames; n++)
VIR_FREE(names[n]);
parallelsDriverUnlock(privconn);
}
def = NULL;
- pool->configFile = strdup("\0");
- if (!pool->configFile) {
- virReportOOMError();
+ if (VIR_STRDUP(pool->configFile, "\0") < 0)
goto cleanup;
- }
ret = virGetStoragePool(conn, pool->def->name, pool->def->uuid,
NULL, NULL);
}
for (i = 0; i < privpool->volumes.count && n < maxnames; i++) {
- if ((names[n++] = strdup(privpool->volumes.objs[i]->name)) == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(names[n++], privpool->volumes.objs[i]->name) < 0)
goto error;
- }
}
virStoragePoolObjUnlock(privpool);
goto cleanup;
}
- privvol->key = strdup(privvol->target.path);
- if (privvol->key == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(privvol->key, privvol->target.path) < 0)
goto cleanup;
- }
if (is_new) {
xml_path = parallelsAddFileExt(privvol->target.path, ".xml");
goto cleanup;
}
- privvol->key = strdup(privvol->target.path);
- if (privvol->key == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(privvol->key, privvol->target.path) < 0)
goto cleanup;
- }
privpool->def->allocation += privvol->allocation;
privpool->def->available = (privpool->def->capacity -
goto cleanup;
}
- ret = strdup(privvol->target.path);
- if (ret == NULL)
- virReportOOMError();
+ ignore_value(VIR_STRDUP(ret, privvol->target.path));
cleanup:
if (privpool)