---
src/vbox/vbox_XPCOMCGlue.c | 6 +-
src/vbox/vbox_tmpl.c | 278 +++++++++++++++++++--------------------------
2 files changed, 117 insertions(+), 167 deletions(-)
diff --git a/src/vbox/vbox_XPCOMCGlue.c b/src/vbox/vbox_XPCOMCGlue.c
index e0b606f..016d925 100644
--- a/src/vbox/vbox_XPCOMCGlue.c
+++ b/src/vbox/vbox_XPCOMCGlue.c
@@ -105,12 +105,8 @@ tryLoadOne(const char *dir, bool setAppHome, bool ignoreMissing,
return -1;
}
} else {
- name = strdup(DYNLIB_NAME);
-
- if (name == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(name, DYNLIB_NAME) < 0)
return -1;
- }
}
/*
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 43ddac8..4ac7b91 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -1840,11 +1840,9 @@ static char *vboxDomainGetOSType(virDomainPtr dom ATTRIBUTE_UNUSED)
{
* is supposed to pass the ABI name and not the domain
* operating system driver as I had imagined ;)
*/
- char *osType = strdup("hvm");
-
- if (osType == NULL)
- virReportOOMError();
+ char *osType;
+ ignore_value(VIR_STRDUP(osType, "hvm"));
return osType;
}
@@ -2290,7 +2288,8 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
def->virtType = VIR_DOMAIN_VIRT_VBOX;
def->id = dom->id;
memcpy(def->uuid, dom->uuid, VIR_UUID_BUFLEN);
- def->name = strdup(dom->name);
+ if (VIR_STRDUP(def->name, dom->name) < 0)
+ goto cleanup;
machine->vtbl->GetMemorySize(machine, &memorySize);
def->mem.cur_balloon = memorySize * 1024;
@@ -2325,7 +2324,8 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
/* Skip cpumasklen, cpumask, onReboot, onPoweroff, onCrash */
- def->os.type = strdup("hvm");
+ if (VIR_STRDUP(def->os.type, "hvm") < 0)
+ goto cleanup;
def->os.arch = virArchFromHost();
@@ -2460,10 +2460,8 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (STREQ(valueTypeUtf8, "sdl")) {
sdlPresent = 1;
- if (valueDisplayUtf8)
- sdlDisplay = strdup(valueDisplayUtf8);
- if (sdlDisplay == NULL) {
- virReportOOMError();
+ if (valueDisplayUtf8 &&
+ VIR_STRDUP(sdlDisplay, valueDisplayUtf8) < 0) {
/* just don't go to cleanup yet as it is ok to have
* sdlDisplay as NULL and we check it below if it
* exist and then only use it there
@@ -2474,10 +2472,8 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (STREQ(valueTypeUtf8, "gui")) {
guiPresent = 1;
- if (valueDisplayUtf8)
- guiDisplay = strdup(valueDisplayUtf8);
- if (guiDisplay == NULL) {
- virReportOOMError();
+ if (valueDisplayUtf8 &&
+ VIR_STRDUP(guiDisplay, valueDisplayUtf8) < 0) {
/* just don't go to cleanup yet as it is ok to have
* guiDisplay as NULL and we check it below if it
* exist and then only use it there
@@ -2512,14 +2508,11 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (VIR_ALLOC(def->graphics[def->ngraphics]) >= 0) {
def->graphics[def->ngraphics]->type =
VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP;
tmp = getenv("DISPLAY");
- if (tmp != NULL) {
- def->graphics[def->ngraphics]->data.desktop.display
= strdup(tmp);
- if
(def->graphics[def->ngraphics]->data.desktop.display == NULL) {
- virReportOOMError();
- /* just don't go to cleanup yet as it is ok to have
- * display as NULL
- */
- }
+ if (tmp &&
+
VIR_STRDUP(def->graphics[def->ngraphics]->data.desktop.display, tmp) < 0) {
+ /* just don't go to cleanup yet as it is ok to have
+ * display as NULL
+ */
}
totalPresent++;
def->ngraphics++;
@@ -2649,9 +2642,9 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (hddType == HardDiskType_Immutable)
def->disks[hddNum]->readonly = true;
- def->disks[hddNum]->src = strdup(hddlocation);
- def->disks[hddNum]->dst = strdup("hda");
- hddNum++;
+ if (VIR_STRDUP(def->disks[hddNum]->src, hddlocation) == 0
&&
+ VIR_STRDUP(def->disks[hddNum]->dst, "hda") == 0)
+ hddNum++;
VBOX_UTF8_FREE(hddlocation);
VBOX_UTF16_FREE(hddlocationUtf16);
@@ -2670,9 +2663,9 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (hddType == HardDiskType_Immutable)
def->disks[hddNum]->readonly = true;
- def->disks[hddNum]->src = strdup(hddlocation);
- def->disks[hddNum]->dst = strdup("hdb");
- hddNum++;
+ if (VIR_STRDUP(def->disks[hddNum]->src, hddlocation) == 0
&&
+ VIR_STRDUP(def->disks[hddNum]->dst, "hdb") == 0)
+ hddNum++;
VBOX_UTF8_FREE(hddlocation);
VBOX_UTF16_FREE(hddlocationUtf16);
@@ -2691,9 +2684,9 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
if (hddType == HardDiskType_Immutable)
def->disks[hddNum]->readonly = true;
- def->disks[hddNum]->src = strdup(hddlocation);
- def->disks[hddNum]->dst = strdup("hdd");
- hddNum++;
+ if (VIR_STRDUP_QUIET(def->disks[hddNum]->src, hddlocation) == 0
&&
+ VIR_STRDUP_QUIET(def->disks[hddNum]->dst, "hdd") ==
0)
+ hddNum++;
VBOX_UTF8_FREE(hddlocation);
VBOX_UTF16_FREE(hddlocationUtf16);
@@ -2780,7 +2773,7 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
medium->vtbl->GetLocation(medium, &mediumLocUtf16);
VBOX_UTF16_TO_UTF8(mediumLocUtf16, &mediumLocUtf8);
VBOX_UTF16_FREE(mediumLocUtf16);
- def->disks[diskCount]->src = strdup(mediumLocUtf8);
+ ignore_value(VIR_STRDUP(def->disks[diskCount]->src,
mediumLocUtf8));
VBOX_UTF8_FREE(mediumLocUtf8);
if (!(def->disks[diskCount]->src)) {
@@ -2884,25 +2877,23 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
sharedFolder->vtbl->GetHostPath(sharedFolder,
&hostPathUtf16);
VBOX_UTF16_TO_UTF8(hostPathUtf16, &hostPath);
- def->fss[i]->src = strdup(hostPath);
- VBOX_UTF8_FREE(hostPath);
- VBOX_UTF16_FREE(hostPathUtf16);
-
- if (def->fss[i]->src == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(def->fss[i]->src, hostPath) < 0) {
+ VBOX_UTF8_FREE(hostPath);
+ VBOX_UTF16_FREE(hostPathUtf16);
goto sharedFoldersCleanup;
}
+ VBOX_UTF8_FREE(hostPath);
+ VBOX_UTF16_FREE(hostPathUtf16);
sharedFolder->vtbl->GetName(sharedFolder, &nameUtf16);
VBOX_UTF16_TO_UTF8(nameUtf16, &name);
- def->fss[i]->dst = strdup(name);
- VBOX_UTF8_FREE(name);
- VBOX_UTF16_FREE(nameUtf16);
-
- if (def->fss[i]->dst == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(def->fss[i]->dst, name) < 0) {
+ VBOX_UTF8_FREE(name);
+ VBOX_UTF16_FREE(nameUtf16);
goto sharedFoldersCleanup;
}
+ VBOX_UTF8_FREE(name);
+ VBOX_UTF16_FREE(nameUtf16);
sharedFolder->vtbl->GetWritable(sharedFolder, &writable);
def->fss[i]->readonly = !writable;
@@ -2976,7 +2967,7 @@ sharedFoldersCleanup:
#endif /* VBOX_API_VERSION >= 4001 */
VBOX_UTF16_TO_UTF8(hostIntUtf16, &hostInt);
- def->nets[netAdpIncCnt]->data.bridge.brname =
strdup(hostInt);
+
ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->data.bridge.brname, hostInt));
VBOX_UTF8_FREE(hostInt);
VBOX_UTF16_FREE(hostIntUtf16);
@@ -2990,7 +2981,7 @@ sharedFoldersCleanup:
adapter->vtbl->GetInternalNetwork(adapter,
&intNetUtf16);
VBOX_UTF16_TO_UTF8(intNetUtf16, &intNet);
- def->nets[netAdpIncCnt]->data.internal.name =
strdup(intNet);
+
ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->data.internal.name, intNet));
VBOX_UTF8_FREE(intNet);
VBOX_UTF16_FREE(intNetUtf16);
@@ -3008,7 +2999,7 @@ sharedFoldersCleanup:
#endif /* VBOX_API_VERSION >= 4001 */
VBOX_UTF16_TO_UTF8(hostIntUtf16, &hostInt);
- def->nets[netAdpIncCnt]->data.network.name =
strdup(hostInt);
+
ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->data.network.name, hostInt));
VBOX_UTF8_FREE(hostInt);
VBOX_UTF16_FREE(hostIntUtf16);
@@ -3022,18 +3013,18 @@ sharedFoldersCleanup:
adapter->vtbl->GetAdapterType(adapter, &adapterType);
if (adapterType == NetworkAdapterType_Am79C970A) {
- def->nets[netAdpIncCnt]->model =
strdup("Am79C970A");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"Am79C970A"));
} else if (adapterType == NetworkAdapterType_Am79C973) {
- def->nets[netAdpIncCnt]->model =
strdup("Am79C973");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"Am79C973"));
} else if (adapterType == NetworkAdapterType_I82540EM) {
- def->nets[netAdpIncCnt]->model =
strdup("82540EM");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"82540EM"));
} else if (adapterType == NetworkAdapterType_I82545EM) {
- def->nets[netAdpIncCnt]->model =
strdup("82545EM");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"82545EM"));
} else if (adapterType == NetworkAdapterType_I82543GC) {
- def->nets[netAdpIncCnt]->model =
strdup("82543GC");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"82543GC"));
#if VBOX_API_VERSION >= 3001
} else if (adapterType == NetworkAdapterType_Virtio) {
- def->nets[netAdpIncCnt]->model =
strdup("virtio");
+ ignore_value(VIR_STRDUP(def->nets[netAdpIncCnt]->model,
"virtio"));
#endif /* VBOX_API_VERSION >= 3001 */
}
@@ -3120,8 +3111,9 @@ sharedFoldersCleanup:
def->disks[def->ndisks - 1]->bus =
VIR_DOMAIN_DISK_BUS_IDE;
def->disks[def->ndisks - 1]->type =
VIR_DOMAIN_DISK_TYPE_FILE;
def->disks[def->ndisks - 1]->readonly = true;
- def->disks[def->ndisks - 1]->src =
strdup(location);
- def->disks[def->ndisks - 1]->dst =
strdup("hdc");
+ if (VIR_STRDUP(def->disks[def->ndisks - 1]->src,
location) < 0 ||
+ VIR_STRDUP(def->disks[def->ndisks - 1]->dst,
"hdc") < 0)
+ def->ndisks--;
} else {
def->ndisks--;
virReportOOMError();
@@ -3167,8 +3159,9 @@ sharedFoldersCleanup:
def->disks[def->ndisks - 1]->bus =
VIR_DOMAIN_DISK_BUS_FDC;
def->disks[def->ndisks - 1]->type =
VIR_DOMAIN_DISK_TYPE_FILE;
def->disks[def->ndisks - 1]->readonly =
false;
- def->disks[def->ndisks - 1]->src =
strdup(location);
- def->disks[def->ndisks - 1]->dst =
strdup("fda");
+ if (VIR_STRDUP(def->disks[def->ndisks -
1]->src, location) < 0 ||
+ VIR_STRDUP(def->disks[def->ndisks -
1]->dst, "fda") < 0)
+ def->ndisks--;
} else {
def->ndisks--;
virReportOOMError();
@@ -3261,7 +3254,7 @@ sharedFoldersCleanup:
if (pathUtf16) {
VBOX_UTF16_TO_UTF8(pathUtf16, &path);
- def->serials[serialPortIncCount]->source.data.file.path
= strdup(path);
+
ignore_value(VIR_STRDUP(def->serials[serialPortIncCount]->source.data.file.path,
path));
}
serialPortIncCount++;
@@ -3331,7 +3324,7 @@ sharedFoldersCleanup:
parallelPort->vtbl->GetPath(parallelPort, &pathUtf16);
VBOX_UTF16_TO_UTF8(pathUtf16, &path);
- def->parallels[parallelPortIncCount]->source.data.file.path
= strdup(path);
+
ignore_value(VIR_STRDUP(def->parallels[parallelPortIncCount]->source.data.file.path,
path));
parallelPortIncCount++;
@@ -3478,16 +3471,16 @@ static int vboxConnectListDefinedDomains(virConnectPtr conn, char
** const names
(state > MachineState_LastOnline)) {
machine->vtbl->GetName(machine, &machineNameUtf16);
VBOX_UTF16_TO_UTF8(machineNameUtf16, &machineName);
- names[j] = strdup(machineName);
- VBOX_UTF16_FREE(machineNameUtf16);
- VBOX_UTF8_FREE(machineName);
- if (!names[j]) {
- virReportOOMError();
+ if (VIR_STRDUP(names[j], machineName) < 0) {
+ VBOX_UTF16_FREE(machineNameUtf16);
+ VBOX_UTF8_FREE(machineName);
for (; j >= 0 ; j--)
VIR_FREE(names[j]);
ret = -1;
goto cleanup;
}
+ VBOX_UTF16_FREE(machineNameUtf16);
+ VBOX_UTF8_FREE(machineName);
j++;
ret++;
}
@@ -3584,29 +3577,23 @@ vboxStartMachine(virDomainPtr dom, int i, IMachine *machine,
if (STREQ(valueTypeUtf8, "sdl")) {
sdlPresent = 1;
- if (valueDisplayUtf8) {
- sdlDisplay = strdup(valueDisplayUtf8);
- if (sdlDisplay == NULL) {
- virReportOOMError();
- /* just don't go to cleanup yet as it is ok to have
- * sdlDisplay as NULL and we check it below if it
- * exist and then only use it there
- */
- }
+ if (valueDisplayUtf8 &&
+ VIR_STRDUP(sdlDisplay, valueDisplayUtf8) < 0) {
+ /* just don't go to cleanup yet as it is ok to have
+ * sdlDisplay as NULL and we check it below if it
+ * exist and then only use it there
+ */
}
}
if (STREQ(valueTypeUtf8, "gui")) {
guiPresent = 1;
- if (valueDisplayUtf8) {
- guiDisplay = strdup(valueDisplayUtf8);
- if (guiDisplay == NULL) {
- virReportOOMError();
- /* just don't go to cleanup yet as it is ok to have
- * guiDisplay as NULL and we check it below if it
- * exist and then only use it there
- */
- }
+ if (valueDisplayUtf8 &&
+ VIR_STRDUP(guiDisplay, valueDisplayUtf8) < 0) {
+ /* just don't go to cleanup yet as it is ok to have
+ * guiDisplay as NULL and we check it below if it
+ * exist and then only use it there
+ */
}
}
}
@@ -3982,7 +3969,8 @@ vboxAttachDrives(virDomainDefPtr def, vboxGlobalData *data, IMachine
*machine)
PRInt32 device = 0;
PRUnichar *hddcnameUtf16 = NULL;
- char *hddcname = strdup("IDE");
+ char *hddcname;
+ ignore_value(VIR_STRDUP(hddcname, "IDE"));
VBOX_UTF8_TO_UTF16(hddcname, &hddcnameUtf16);
VIR_FREE(hddcname);
@@ -4801,30 +4789,24 @@ vboxAttachDisplay(virDomainDefPtr def, vboxGlobalData *data,
IMachine *machine)
if ((def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_DESKTOP)
&&
(guiPresent == 0)) {
guiPresent = 1;
- if (def->graphics[i]->data.desktop.display) {
- guiDisplay = strdup(def->graphics[i]->data.desktop.display);
- if (guiDisplay == NULL) {
- virReportOOMError();
- /* just don't go to cleanup yet as it is ok to have
- * guiDisplay as NULL and we check it below if it
- * exist and then only use it there
- */
- }
+ if (def->graphics[i]->data.desktop.display &&
+ VIR_STRDUP(guiDisplay, def->graphics[i]->data.desktop.display) <
0) {
+ /* just don't go to cleanup yet as it is ok to have
+ * guiDisplay as NULL and we check it below if it
+ * exist and then only use it there
+ */
}
}
if ((def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) &&
(sdlPresent == 0)) {
sdlPresent = 1;
- if (def->graphics[i]->data.sdl.display) {
- sdlDisplay = strdup(def->graphics[i]->data.sdl.display);
- if (sdlDisplay == NULL) {
- virReportOOMError();
- /* just don't go to cleanup yet as it is ok to have
- * sdlDisplay as NULL and we check it below if it
- * exist and then only use it there
- */
- }
+ if (def->graphics[i]->data.sdl.display &&
+ VIR_STRDUP(sdlDisplay, def->graphics[i]->data.sdl.display) < 0)
{
+ /* just don't go to cleanup yet as it is ok to have
+ * sdlDisplay as NULL and we check it below if it
+ * exist and then only use it there
+ */
}
}
}
@@ -5226,7 +5208,8 @@ vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
{
PRUnichar *hddcnameUtf16 = NULL;
- char *hddcname = strdup("IDE");
+ char *hddcname;
+ ignore_value(VIR_STRDUP(hddcname, "IDE"));
VBOX_UTF8_TO_UTF16(hddcname, &hddcnameUtf16);
VIR_FREE(hddcname);
@@ -5385,12 +5368,8 @@ static int vboxDomainAttachDeviceImpl(virDomainPtr dom,
return ret;
}
- def->os.type = strdup("hvm");
-
- if (def->os.type == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(def->os.type, "hvm") < 0)
goto cleanup;
- }
dev = virDomainDeviceDefParse(xml, def, data->caps, data->xmlopt,
VIR_DOMAIN_XML_INACTIVE);
@@ -5620,12 +5599,8 @@ static int vboxDomainDetachDevice(virDomainPtr dom, const char
*xml) {
return ret;
}
- def->os.type = strdup("hvm");
-
- if (def->os.type == NULL) {
- virReportOOMError();
+ if (VIR_STRDUP(def->os.type, "hvm") < 0)
goto cleanup;
- }
dev = virDomainDeviceDefParse(xml, def, data->caps, data->xmlopt,
VIR_DOMAIN_XML_INACTIVE);
@@ -6050,9 +6025,10 @@ vboxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
if (!(snap = vboxDomainSnapshotGet(data, dom, machine, snapshot->name)))
goto cleanup;
- if (VIR_ALLOC(def) < 0
- || !(def->name = strdup(snapshot->name)))
+ if (VIR_ALLOC(def) < 0)
goto no_memory;
+ if (VIR_STRDUP(def->name, snapshot->name) < 0)
+ goto cleanup;
rc = snap->vtbl->GetDescription(snap, &str16);
if (NS_FAILED(rc)) {
@@ -6064,10 +6040,11 @@ vboxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
if (str16) {
VBOX_UTF16_TO_UTF8(str16, &str8);
VBOX_UTF16_FREE(str16);
- def->description = strdup(str8);
+ if (VIR_STRDUP(def->description, str8) < 0) {
+ VBOX_UTF8_FREE(str8);
+ goto cleanup;
+ }
VBOX_UTF8_FREE(str8);
- if (!def->description)
- goto no_memory;
}
rc = snap->vtbl->GetTimeStamp(snap, ×tamp);
@@ -6097,10 +6074,11 @@ vboxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
}
VBOX_UTF16_TO_UTF8(str16, &str8);
VBOX_UTF16_FREE(str16);
- def->parent = strdup(str8);
- VBOX_UTF8_FREE(str8);
- if (!def->parent)
+ if (VIR_STRDUP(def->parent, str8) < 0) {
+ VBOX_UTF8_FREE(str8);
goto no_memory;
+ }
+ VBOX_UTF8_FREE(str8);
}
rc = snap->vtbl->GetOnline(snap, &online);
@@ -6247,12 +6225,12 @@ vboxDomainSnapshotListNames(virDomainPtr dom,
}
VBOX_UTF16_TO_UTF8(nameUtf16, &name);
VBOX_UTF16_FREE(nameUtf16);
- names[i] = strdup(name);
- VBOX_UTF8_FREE(name);
- if (!names[i]) {
+ if (VIR_STRDUP(names[i], name) < 0) {
virReportOOMError();
+ VBOX_UTF8_FREE(name);
goto cleanup;
}
+ VBOX_UTF8_FREE(name);
}
if (count <= nameslen)
@@ -7529,12 +7507,8 @@ static int vboxConnectListNetworks(virConnectPtr conn, char **const
names, int n
VBOX_UTF16_TO_UTF8(nameUtf16, &nameUtf8);
VIR_DEBUG("nnames[%d]: %s", ret, nameUtf8);
- names[ret] = strdup(nameUtf8);
- if (names[ret] == NULL) {
- virReportOOMError();
- } else {
+ if (VIR_STRDUP(names[ret], nameUtf8) == 0)
ret++;
- }
VBOX_UTF8_FREE(nameUtf8);
VBOX_UTF16_FREE(nameUtf16);
@@ -7611,12 +7585,8 @@ static int vboxConnectListDefinedNetworks(virConnectPtr conn, char
**const names
VBOX_UTF16_TO_UTF8(nameUtf16, &nameUtf8);
VIR_DEBUG("nnames[%d]: %s", ret, nameUtf8);
- names[ret] = strdup(nameUtf8);
- if (names[ret] == NULL) {
- virReportOOMError();
- } else {
+ if (VIR_STRDUP(names[ret], nameUtf8) == 0)
ret++;
- }
VBOX_UTF8_FREE(nameUtf8);
VBOX_UTF16_FREE(nameUtf16);
@@ -8117,8 +8087,7 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network,
networkInterface->vtbl->GetInterfaceType(networkInterface,
&interfaceType);
if (interfaceType == HostNetworkInterfaceType_HostOnly) {
- def->name = strdup(network->name);
- if (def->name != NULL) {
+ if (VIR_STRDUP(def->name, network->name) == 0) {
PRUnichar *networkNameUtf16 = NULL;
IDHCPServer *dhcpServer = NULL;
vboxIID vboxnet0IID = VBOX_IID_INITIALIZER;
@@ -8175,11 +8144,9 @@ static char *vboxNetworkGetXMLDesc(virNetworkPtr network,
ipdef->nhosts = 1;
if (VIR_ALLOC_N(ipdef->hosts, ipdef->nhosts) >=0) {
- ipdef->hosts[0].name = strdup(network->name);
- if (ipdef->hosts[0].name == NULL) {
+ if (VIR_STRDUP(ipdef->hosts[0].name, network->name) < 0)
{
VIR_FREE(ipdef->hosts);
ipdef->nhosts = 0;
- virReportOOMError();
} else {
PRUnichar *macAddressUtf16 = NULL;
PRUnichar *ipAddressUtf16 = NULL;
@@ -8296,14 +8263,9 @@ static int vboxConnectListStoragePools(virConnectPtr conn
ATTRIBUTE_UNUSED,
char **const names, int nnames) {
int numActive = 0;
- if (nnames == 1) {
- names[numActive] = strdup("default-pool");
- if (names[numActive] == NULL) {
- virReportOOMError();
- } else {
- numActive++;
- }
- }
+ if (nnames == 1 &&
+ VIR_STRDUP(names[numActive], "default-pool") == 0)
+ numActive++;
return numActive;
}
@@ -8385,12 +8347,8 @@ static int vboxStoragePoolListVolumes(virStoragePoolPtr pool, char
**const names
if (nameUtf8) {
VIR_DEBUG("nnames[%d]: %s", numActive, nameUtf8);
- names[numActive] = strdup(nameUtf8);
- if (names[numActive] == NULL) {
- virReportOOMError();
- } else {
+ if (VIR_STRDUP(names[numActive], nameUtf8) == 0)
numActive++;
- }
VBOX_UTF8_FREE(nameUtf8);
}
@@ -9007,12 +8965,10 @@ static char *vboxStorageVolGetXMLDesc(virStorageVolPtr vol,
unsigned int flags)
else
defOk = 0;
- def.name = strdup(vol->name);
- if (!(def.name && defOk))
+ if (VIR_STRDUP(def.name, vol->name) < 0)
defOk = 0;
- def.key = strdup(vol->key);
- if (!(def.key && defOk))
+ if (VIR_STRDUP(def.key, vol->key) < 0)
defOk = 0;
rc = hardDisk->vtbl->GetFormat(hardDisk, &hddFormatUtf16);
@@ -9088,9 +9044,7 @@ static char *vboxStorageVolGetPath(virStorageVolPtr vol) {
VBOX_UTF16_TO_UTF8(hddLocationUtf16, &hddLocationUtf8);
if (hddLocationUtf8) {
- ret = strdup(hddLocationUtf8);
- if (!ret)
- virReportOOMError();
+ ignore_value(VIR_STRDUP(ret, hddLocationUtf8));
VIR_DEBUG("Storage Volume Name: %s", vol->name);
VIR_DEBUG("Storage Volume Path: %s", hddLocationUtf8);
@@ -9211,14 +9165,14 @@ vboxDomainScreenshot(virDomainPtr dom,
goto endjob;
}
+ if (VIR_STRDUP(ret, "image/png") < 0)
+ goto endjob;
+
if (virFDStreamOpenFile(st, tmp, 0, 0, O_RDONLY) < 0) {
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
_("unable to open stream"));
- goto endjob;
+ VIR_FREE(ret);
}
-
- ret = strdup("image/png");
-
endjob:
VIR_FREE(screenData);
VBOX_RELEASE(display);
--
1.8.1.5