[libvirt] [PATCH v3 05/34] Adapt to VIR_STRDUP and VIR_STRNDUP in src/esx/*

Michal Privoznik mprivozn at redhat.com
Fri May 3 14:53:10 UTC 2013


---
 src/esx/esx_driver.c                | 43 ++++++--------------
 src/esx/esx_interface_driver.c      |  7 +---
 src/esx/esx_network_driver.c        | 28 ++++---------
 src/esx/esx_storage_backend_iscsi.c | 21 +++-------
 src/esx/esx_storage_backend_vmfs.c  | 16 ++------
 src/esx/esx_util.c                  | 45 +++++----------------
 src/esx/esx_vi.c                    | 79 +++++++------------------------------
 src/esx/esx_vi_types.c              | 36 +++--------------
 8 files changed, 58 insertions(+), 217 deletions(-)

diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index dcf64b8..714a218 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -669,12 +669,8 @@ esxConnectToHost(esxPrivate *priv,
     }
 
     if (conn->uri->user != NULL) {
-        username = strdup(conn->uri->user);
-
-        if (username == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(username, conn->uri->user) < 0)
             goto cleanup;
-        }
     } else {
         username = virAuthGetUsername(conn, auth, "esx", "root", conn->uri->server);
 
@@ -751,14 +747,9 @@ esxConnectToHost(esxPrivate *priv,
         VIR_WARN("The server is in maintenance mode");
     }
 
-    if (*vCenterIpAddress != NULL) {
-        *vCenterIpAddress = strdup(*vCenterIpAddress);
-
-        if (*vCenterIpAddress == NULL) {
-            virReportOOMError();
-            goto cleanup;
-        }
-    }
+    if (!*vCenterIpAddress &&
+        VIR_STRDUP(*vCenterIpAddress, *vCenterIpAddress) < 0)
+        goto cleanup;
 
     result = 0;
 
@@ -801,9 +792,7 @@ esxConnectToVCenter(esxPrivate *priv,
     }
 
     if (conn->uri->user != NULL) {
-        username = strdup(conn->uri->user);
-
-        if (username == NULL) {
+        if (VIR_STRDUP(username, conn->uri->user) < 0) {
             virReportOOMError();
             goto cleanup;
         }
@@ -1278,12 +1267,8 @@ esxConnectGetHostname(virConnectPtr conn)
     }
 
     if (domainName == NULL || strlen(domainName) < 1) {
-        complete = strdup(hostName);
-
-        if (complete == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(complete, hostName) < 0)
             goto cleanup;
-        }
     } else {
         if (virAsprintf(&complete, "%s.%s", hostName, domainName) < 0) {
             virReportOOMError();
@@ -1294,7 +1279,7 @@ esxConnectGetHostname(virConnectPtr conn)
   cleanup:
     /*
      * If we goto cleanup in case of an error then complete is still NULL,
-     * either strdup returned NULL or virAsprintf failed. When virAsprintf
+     * either VIR_STRDUP returned NULL or virAsprintf failed. When virAsprintf
      * fails it guarantees setting complete to NULL
      */
     esxVI_String_Free(&propertyNameList);
@@ -2016,13 +2001,9 @@ esxDomainDestroy(virDomainPtr dom)
 static char *
 esxDomainGetOSType(virDomainPtr domain ATTRIBUTE_UNUSED)
 {
-    char *osType = strdup("hvm");
-
-    if (osType == NULL) {
-        virReportOOMError();
-        return NULL;
-    }
+    char *osType;
 
+    ignore_value(VIR_STRDUP(osType, "hvm"));
     return osType;
 }
 
@@ -3577,12 +3558,10 @@ esxDomainSetAutostart(virDomainPtr domain, int autostart)
 static char *
 esxDomainGetSchedulerType(virDomainPtr domain ATTRIBUTE_UNUSED, int *nparams)
 {
-    char *type = strdup("allocation");
+    char *type;
 
-    if (type == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(type, "allocation") < 0)
         return NULL;
-    }
 
     if (nparams != NULL) {
         *nparams = 3; /* reservation, limit, shares */
diff --git a/src/esx/esx_interface_driver.c b/src/esx/esx_interface_driver.c
index fe5194c..7875ccf 100644
--- a/src/esx/esx_interface_driver.c
+++ b/src/esx/esx_interface_driver.c
@@ -35,6 +35,7 @@
 #include "esx_vi.h"
 #include "esx_vi_methods.h"
 #include "esx_util.h"
+#include "virstring.h"
 
 #define VIR_FROM_THIS VIR_FROM_ESX
 
@@ -114,12 +115,8 @@ esxConnectListInterfaces(virConnectPtr conn, char **const names, int maxnames)
 
     for (physicalNic = physicalNicList; physicalNic != NULL;
          physicalNic = physicalNic->_next) {
-        names[count] = strdup(physicalNic->device);
-
-        if (names[count] == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(names[count], physicalNic->device) < 0)
             goto cleanup;
-        }
 
         ++count;
     }
diff --git a/src/esx/esx_network_driver.c b/src/esx/esx_network_driver.c
index fd57b61..a4842da 100644
--- a/src/esx/esx_network_driver.c
+++ b/src/esx/esx_network_driver.c
@@ -35,6 +35,7 @@
 #include "esx_vi.h"
 #include "esx_vi_methods.h"
 #include "esx_util.h"
+#include "virstring.h"
 
 #define VIR_FROM_THIS VIR_FROM_ESX
 
@@ -122,12 +123,8 @@ esxConnectListNetworks(virConnectPtr conn, char **const names, int maxnames)
 
     for (hostVirtualSwitch = hostVirtualSwitchList; hostVirtualSwitch != NULL;
          hostVirtualSwitch = hostVirtualSwitch->_next) {
-        names[count] = strdup(hostVirtualSwitch->name);
-
-        if (names[count] == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(names[count], hostVirtualSwitch->name) < 0)
             goto cleanup;
-        }
 
         ++count;
     }
@@ -713,12 +710,8 @@ esxNetworkGetXMLDesc(virNetworkPtr network_, unsigned int flags)
 
     md5_buffer(hostVirtualSwitch->key, strlen(hostVirtualSwitch->key), def->uuid);
 
-    def->name = strdup(hostVirtualSwitch->name);
-
-    if (def->name == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(def->name, hostVirtualSwitch->name) < 0)
         goto cleanup;
-    }
 
     def->forward.type = VIR_NETWORK_FORWARD_NONE;
 
@@ -752,13 +745,9 @@ esxNetworkGetXMLDesc(virNetworkPtr network_, unsigned int flags)
                 if (STREQ(physicalNicKey->value, physicalNic->key)) {
                     def->forward.ifs[def->forward.nifs].type
                         = VIR_NETWORK_FORWARD_HOSTDEV_DEVICE_NETDEV;
-                    def->forward.ifs[def->forward.nifs].device.dev
-                        = strdup(physicalNic->device);
-
-                    if (def->forward.ifs[def->forward.nifs].device.dev == NULL) {
-                        virReportOOMError();
+                    if (VIR_STRDUP(def->forward.ifs[def->forward.nifs].device.dev,
+                                   physicalNic->device) < 0)
                         goto cleanup;
-                    }
 
                     ++def->forward.nifs;
 
@@ -823,12 +812,9 @@ esxNetworkGetXMLDesc(virNetworkPtr network_, unsigned int flags)
                     for (networkName = networkNameList; networkName != NULL;
                          networkName = networkName->_next) {
                         if (STREQ(networkName->value, hostPortGroup->spec->name)) {
-                            def->portGroups[def->nPortGroups].name = strdup(networkName->value);
-
-                            if (def->portGroups[def->nPortGroups].name == NULL) {
-                                virReportOOMError();
+                            if (VIR_STRDUP(def->portGroups[def->nPortGroups].name,
+                                           networkName->value) < 0)
                                 goto cleanup;
-                            }
 
                             if (hostPortGroup->spec->policy != NULL) {
                                 if (esxShapingPolicyToBandwidth
diff --git a/src/esx/esx_storage_backend_iscsi.c b/src/esx/esx_storage_backend_iscsi.c
index 941e800..a22adb4 100644
--- a/src/esx/esx_storage_backend_iscsi.c
+++ b/src/esx/esx_storage_backend_iscsi.c
@@ -38,6 +38,7 @@
 #include "esx_vi.h"
 #include "esx_vi_methods.h"
 #include "esx_util.h"
+#include "virstring.h"
 
 #define VIR_FROM_THIS VIR_FROM_ESX
 
@@ -130,12 +131,8 @@ esxStorageBackendISCSIListPools(virConnectPtr conn, char **const names,
      */
     for (target = hostInternetScsiHba->configuredStaticTarget;
          target != NULL && count < maxnames; target = target->_next) {
-        names[count] = strdup(target->iScsiName);
-
-        if (names[count] == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(names[count], target->iScsiName) < 0)
             goto cleanup;
-        }
 
         ++count;
     }
@@ -419,12 +416,8 @@ esxStorageBackendISCSIPoolListVolumes(virStoragePoolPtr pool, char **const names
              hostScsiTopologyLun != NULL && count < maxnames;
              hostScsiTopologyLun = hostScsiTopologyLun->_next) {
             if (STREQ(hostScsiTopologyLun->scsiLun, scsiLun->key)) {
-                names[count] = strdup(scsiLun->deviceName);
-
-                if (names[count] == NULL) {
-                    virReportOOMError();
+                if (VIR_STRDUP(names[count], scsiLun->deviceName) < 0)
                     goto cleanup;
-                }
 
                 ++count;
             }
@@ -739,13 +732,9 @@ esxStorageBackendISCSIVolumeWipe(virStorageVolPtr volume ATTRIBUTE_UNUSED,
 static char *
 esxStorageBackendISCSIVolumeGetPath(virStorageVolPtr volume)
 {
-    char *path = strdup(volume->name);
-
-    if (path == NULL) {
-        virReportOOMError();
-        return NULL;
-    }
+    char *path;
 
+    ignore_value(VIR_STRDUP(path, volume->name));
     return path;
 }
 
diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
index 5d6f183..dd638ad 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -168,12 +168,8 @@ esxStorageBackendVMFSListPools(virConnectPtr conn, char **const names,
                     goto cleanup;
                 }
 
-                names[count] = strdup(dynamicProperty->val->string);
-
-                if (names[count] == NULL) {
-                    virReportOOMError();
+                if (VIR_STRDUP(names[count], dynamicProperty->val->string) < 0)
                     goto cleanup;
-                }
 
                 ++count;
                 break;
@@ -614,12 +610,8 @@ esxStorageBackendVMFSPoolListVolumes(virStoragePoolPtr pool, char **const names,
         for (fileInfo = searchResults->file; fileInfo != NULL;
              fileInfo = fileInfo->_next) {
             if (length < 1) {
-                names[count] = strdup(fileInfo->path);
-
-                if (names[count] == NULL) {
-                    virReportOOMError();
+                if (VIR_STRDUP(names[count], fileInfo->path) < 0)
                     goto cleanup;
-                }
             } else if (virAsprintf(&names[count], "%s/%s", directoryAndFileName,
                                    fileInfo->path) < 0) {
                 virReportOOMError();
@@ -791,10 +783,8 @@ esxStorageBackendVMFSVolumeLookupByKey(virConnectPtr conn, const char *key)
                 VIR_FREE(datastorePath);
 
                 if (length < 1) {
-                    if (!(volumeName = strdup(fileInfo->path))) {
-                        virReportOOMError();
+                    if (VIR_STRDUP(volumeName, fileInfo->path) < 0)
                         goto cleanup;
-                    }
                 } else if (virAsprintf(&volumeName, "%s/%s",
                                        directoryAndFileName,
                                        fileInfo->path) < 0) {
diff --git a/src/esx/esx_util.c b/src/esx/esx_util.c
index 4566fec..62268aa 100644
--- a/src/esx/esx_util.c
+++ b/src/esx/esx_util.c
@@ -65,12 +65,8 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURIPtr uri)
         if (STRCASEEQ(queryParam->name, "transport")) {
             VIR_FREE((*parsedUri)->transport);
 
-            (*parsedUri)->transport = strdup(queryParam->value);
-
-            if ((*parsedUri)->transport == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP((*parsedUri)->transport, queryParam->value) < 0)
                 goto cleanup;
-            }
 
             if (STRNEQ((*parsedUri)->transport, "http") &&
                 STRNEQ((*parsedUri)->transport, "https")) {
@@ -83,12 +79,8 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURIPtr uri)
         } else if (STRCASEEQ(queryParam->name, "vcenter")) {
             VIR_FREE((*parsedUri)->vCenter);
 
-            (*parsedUri)->vCenter = strdup(queryParam->value);
-
-            if ((*parsedUri)->vCenter == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP((*parsedUri)->vCenter, queryParam->value) < 0)
                 goto cleanup;
-            }
         } else if (STRCASEEQ(queryParam->name, "no_verify")) {
             if (virStrToLong_i(queryParam->value, NULL, 10, &noVerify) < 0 ||
                 (noVerify != 0 && noVerify != 1)) {
@@ -137,12 +129,8 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURIPtr uri)
                 tmp = queryParam->value;
             }
 
-            (*parsedUri)->proxy_hostname = strdup(tmp);
-
-            if ((*parsedUri)->proxy_hostname == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP((*parsedUri)->proxy_hostname, tmp) < 0)
                 goto cleanup;
-            }
 
             if ((tmp = strchr((*parsedUri)->proxy_hostname, ':')) != NULL) {
                 if (tmp == (*parsedUri)->proxy_hostname) {
@@ -171,23 +159,12 @@ esxUtil_ParseUri(esxUtil_ParsedUri **parsedUri, virURIPtr uri)
         }
     }
 
-    if (uri->path != NULL) {
-        (*parsedUri)->path = strdup(uri->path);
-
-        if ((*parsedUri)->path == NULL) {
-            virReportOOMError();
-            goto cleanup;
-        }
-    }
-
-    if ((*parsedUri)->transport == NULL) {
-        (*parsedUri)->transport = strdup("https");
+    if (uri->path && VIR_STRDUP((*parsedUri)->path, uri->path) < 0)
+        goto cleanup;
 
-        if ((*parsedUri)->transport == NULL) {
-            virReportOOMError();
-            goto cleanup;
-        }
-    }
+    if (!(*parsedUri)->transport &&
+        VIR_STRDUP((*parsedUri)->transport, "https") < 0)
+        goto cleanup;
 
     result = 0;
 
@@ -494,14 +471,12 @@ esxUtil_ReplaceSpecialWindowsPathChars(char *string)
 char *
 esxUtil_EscapeDatastoreItem(const char *string)
 {
-    char *replaced = strdup(string);
+    char *replaced;
     char *escaped1;
     char *escaped2 = NULL;
 
-    if (replaced == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(replaced, string) < 0)
         return NULL;
-    }
 
     esxUtil_ReplaceSpecialWindowsPathChars(replaced);
 
diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c
index ee48159..5fd0693 100644
--- a/src/esx/esx_vi.c
+++ b/src/esx/esx_vi.c
@@ -947,12 +947,8 @@ esxVI_Context_LookupManagedObjects(esxVI_Context *ctx)
         return -1;
     }
 
-    ctx->datacenterPath = strdup(ctx->datacenter->name);
-
-    if (ctx->datacenterPath == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(ctx->datacenterPath, ctx->datacenter->name) < 0)
         return -1;
-    }
 
     /* Lookup (Cluster)ComputeResource */
     if (esxVI_LookupComputeResource(ctx, NULL, ctx->datacenter->hostFolder,
@@ -967,12 +963,8 @@ esxVI_Context_LookupManagedObjects(esxVI_Context *ctx)
         return -1;
     }
 
-    ctx->computeResourcePath = strdup(ctx->computeResource->name);
-
-    if (ctx->computeResourcePath == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(ctx->computeResourcePath, ctx->computeResource->name) < 0)
         return -1;
-    }
 
     /* Lookup HostSystem */
     if (esxVI_LookupHostSystem(ctx, NULL, ctx->computeResource->_reference,
@@ -981,12 +973,8 @@ esxVI_Context_LookupManagedObjects(esxVI_Context *ctx)
         return -1;
     }
 
-    ctx->hostSystemName = strdup(ctx->hostSystem->name);
-
-    if (ctx->hostSystemName == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(ctx->hostSystemName, ctx->hostSystem->name) < 0)
         return -1;
-    }
 
     return 0;
 }
@@ -1003,12 +991,8 @@ esxVI_Context_LookupManagedObjectsByPath(esxVI_Context *ctx, const char *path)
     esxVI_ManagedObjectReference *root = NULL;
     esxVI_Folder *folder = NULL;
 
-    tmp = strdup(path);
-
-    if (tmp == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(tmp, path) < 0)
         goto cleanup;
-    }
 
     /* Lookup Datacenter */
     item = strtok_r(tmp, "/", &saveptr);
@@ -1160,12 +1144,8 @@ esxVI_Context_LookupManagedObjectsByPath(esxVI_Context *ctx, const char *path)
         goto cleanup;
     }
 
-    ctx->hostSystemName = strdup(previousItem);
-
-    if (ctx->hostSystemName == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(ctx->hostSystemName, previousItem) < 0)
         goto cleanup;
-    }
 
     if (esxVI_LookupHostSystem(ctx, ctx->hostSystemName,
                                ctx->computeResource->_reference, NULL,
@@ -2498,12 +2478,8 @@ esxVI_GetVirtualMachineIdentity(esxVI_ObjectContent *virtualMachine,
                     goto failure;
                 }
 
-                *name = strdup(dynamicProperty->val->string);
-
-                if (*name == NULL) {
-                    virReportOOMError();
+                if (VIR_STRDUP(*name, dynamicProperty->val->string) < 0)
                     goto failure;
-                }
 
                 if (virVMXUnescapeHexPercent(*name) < 0) {
                     virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -2611,12 +2587,8 @@ esxVI_GetSnapshotTreeNames(esxVI_VirtualMachineSnapshotTree *snapshotTreeList,
          snapshotTree != NULL && count < nameslen;
          snapshotTree = snapshotTree->_next) {
         if (!(leaves && snapshotTree->childSnapshotList)) {
-            names[count] = strdup(snapshotTree->name);
-
-            if (names[count] == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP(names[count], snapshotTree->name) < 0)
                 goto failure;
-            }
 
             count++;
         }
@@ -4388,12 +4360,8 @@ esxVI_WaitForTaskCompletion(esxVI_Context *ctx,
         return -1;
     }
 
-    version = strdup("");
-
-    if (version == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(version, "") < 0)
         return -1;
-    }
 
     if (esxVI_ObjectSpec_Alloc(&objectSpec) < 0) {
         goto cleanup;
@@ -4469,12 +4437,8 @@ esxVI_WaitForTaskCompletion(esxVI_Context *ctx,
         }
 
         VIR_FREE(version);
-        version = strdup(updateSet->version);
-
-        if (version == NULL) {
-            virReportOOMError();
+        if (VIR_STRDUP(version, updateSet->version) < 0)
             goto cleanup;
-        }
 
         if (updateSet->filterSet == NULL) {
             continue;
@@ -4523,19 +4487,11 @@ esxVI_WaitForTaskCompletion(esxVI_Context *ctx,
         }
 
         if (taskInfo->error == NULL) {
-            *errorMessage = strdup(_("Unknown error"));
-
-            if (*errorMessage == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP(*errorMessage, _("Unknown error")) < 0)
                 goto cleanup;
-            }
         } else if (taskInfo->error->localizedMessage == NULL) {
-            *errorMessage = strdup(taskInfo->error->fault->_actualType);
-
-            if (*errorMessage == NULL) {
-                virReportOOMError();
+            if (VIR_STRDUP(*errorMessage, taskInfo->error->fault->_actualType) < 0)
                 goto cleanup;
-            }
         } else {
             if (virAsprintf(errorMessage, "%s - %s",
                             taskInfo->error->fault->_actualType,
@@ -4976,21 +4932,16 @@ esxVI_LookupStoragePoolNameByScsiLunKey(esxVI_Context *ctx,
              hostScsiTopologyTarget != NULL;
              hostScsiTopologyTarget = hostScsiTopologyTarget->_next) {
             candidate = esxVI_HostInternetScsiTargetTransport_DynamicCast
-                          (hostScsiTopologyTarget->transport);
+                (hostScsiTopologyTarget->transport);
 
             if (candidate != NULL) {
                 /* iterate hostScsiTopologyLun list to find matching key */
                 for (hostScsiTopologyLun = hostScsiTopologyTarget->lun;
                      hostScsiTopologyLun != NULL;
                      hostScsiTopologyLun = hostScsiTopologyLun->_next) {
-                    if (STREQ(hostScsiTopologyLun->scsiLun, key)) {
-                        *poolName = strdup(candidate->iScsiName);
-
-                        if (*poolName == NULL) {
-                            virReportOOMError();
-                            goto cleanup;
-                        }
-                    }
+                    if (STREQ(hostScsiTopologyLun->scsiLun, key) &&
+                        VIR_STRDUP(*poolName, candidate->iScsiName) < 0)
+                        goto cleanup;
                 }
 
                 /* hostScsiTopologyLun iteration done, terminate loop */
diff --git a/src/esx/esx_vi_types.c b/src/esx/esx_vi_types.c
index 7f40308..4596520 100644
--- a/src/esx/esx_vi_types.c
+++ b/src/esx/esx_vi_types.c
@@ -1050,14 +1050,8 @@ esxVI_AnyType_Deserialize(xmlNodePtr node, esxVI_AnyType **anyType)
     (*anyType)->value =
       (char *)xmlNodeListGetString(node->doc, node->children, 1);
 
-    if ((*anyType)->value == NULL) {
-        (*anyType)->value = strdup("");
-
-        if ((*anyType)->value == NULL) {
-            virReportOOMError();
-            goto failure;
-        }
-    }
+    if (!(*anyType)->value && VIR_STRDUP((*anyType)->value, "") < 0)
+        goto failure;
 
 #define _DESERIALIZE_NUMBER(_type, _xsdType, _name, _min, _max)               \
         do {                                                                  \
@@ -1177,12 +1171,8 @@ esxVI_String_AppendValueToList(esxVI_String **stringList, const char *value)
         return -1;
     }
 
-    string->value = strdup(value);
-
-    if (string->value == NULL) {
-        virReportOOMError();
+    if (VIR_STRDUP(string->value, value) < 0)
         goto failure;
-    }
 
     if (esxVI_String_AppendToList(stringList, string) < 0) {
         goto failure;
@@ -1244,14 +1234,7 @@ esxVI_String_DeepCopyValue(char **dest, const char *src)
         return 0;
     }
 
-    *dest = strdup(src);
-
-    if (*dest == NULL) {
-        virReportOOMError();
-        return -1;
-    }
-
-    return 0;
+    return VIR_STRDUP(*dest, src);
 }
 
 /* esxVI_String_CastFromAnyType */
@@ -1327,16 +1310,7 @@ esxVI_String_DeserializeValue(xmlNodePtr node, char **value)
 
     *value = (char *)xmlNodeListGetString(node->doc, node->children, 1);
 
-    if (*value == NULL) {
-        *value = strdup("");
-
-        if (*value == NULL) {
-            virReportOOMError();
-            return -1;
-        }
-    }
-
-    return 0;
+    return value ? 0 : VIR_STRDUP(*value, "");
 }
 
 
-- 
1.8.1.5




More information about the libvir-list mailing list