mirror of https://gitee.com/openkylin/libvirt.git
Adapt to VIR_STRDUP and VIR_STRNDUP in src/storage/*
This commit is contained in:
parent
854b91cd9f
commit
aaf8114d56
|
@ -44,6 +44,7 @@
|
|||
#include "virutil.h"
|
||||
#include "c-ctype.h"
|
||||
#include "configmake.h"
|
||||
#include "virstring.h"
|
||||
|
||||
/* we don't need to include the full internal.h just for this */
|
||||
#define STREQ(a,b) (strcmp(a,b) == 0)
|
||||
|
@ -86,10 +87,8 @@ int main(int argc, char **argv)
|
|||
path = argv[1];
|
||||
if (virIsDevMapperDevice(path)) {
|
||||
partsep = "p";
|
||||
canonical_path = strdup(path);
|
||||
if (canonical_path == NULL) {
|
||||
if (VIR_STRDUP_QUIET(canonical_path, path) < 0)
|
||||
return 2;
|
||||
}
|
||||
} else {
|
||||
if (virFileResolveLink(path, &canonical_path) != 0) {
|
||||
return 2;
|
||||
|
|
|
@ -486,11 +486,8 @@ virStorageGenerateQcowEncryption(virConnectPtr conn,
|
|||
goto cleanup;
|
||||
|
||||
def->usage_type = VIR_SECRET_USAGE_TYPE_VOLUME;
|
||||
def->usage.volume = strdup(vol->target.path);
|
||||
if (def->usage.volume == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(def->usage.volume, vol->target.path) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
xml = virSecretDefFormat(def);
|
||||
virSecretDefFree(def);
|
||||
def = NULL;
|
||||
|
@ -1261,12 +1258,11 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageVolTargetPtr target,
|
|||
target->perms.label = NULL;
|
||||
}
|
||||
} else {
|
||||
target->perms.label = strdup(filecon);
|
||||
freecon(filecon);
|
||||
if (target->perms.label == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(target->perms.label, filecon) < 0) {
|
||||
freecon(filecon);
|
||||
return -1;
|
||||
}
|
||||
freecon(filecon);
|
||||
}
|
||||
#else
|
||||
target->perms.label = NULL;
|
||||
|
@ -1451,10 +1447,7 @@ virStorageBackendStablePath(virStoragePoolObjPtr pool,
|
|||
* the original non-stable dev path
|
||||
*/
|
||||
|
||||
stablepath = strdup(devpath);
|
||||
|
||||
if (stablepath == NULL)
|
||||
virReportOOMError();
|
||||
ignore_value(VIR_STRDUP(stablepath, devpath));
|
||||
|
||||
return stablepath;
|
||||
}
|
||||
|
@ -1556,11 +1549,8 @@ virStorageBackendRunProgRegex(virStoragePoolObjPtr pool,
|
|||
for (j = 0 ; j < nvars[i] ; j++) {
|
||||
/* NB vars[0] is the full pattern, so we offset j by 1 */
|
||||
p[vars[j+1].rm_eo] = '\0';
|
||||
if ((groups[ngroup++] =
|
||||
strdup(p + vars[j+1].rm_so)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(groups[ngroup++], p + vars[j+1].rm_so) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
/* We're matching on the last regex, so callback time */
|
||||
|
|
|
@ -66,17 +66,13 @@ virStorageBackendDiskMakeDataVol(virStoragePoolObjPtr pool,
|
|||
* strip the path to form a reasonable pool-unique name
|
||||
*/
|
||||
tmp = strrchr(groups[0], '/');
|
||||
if ((vol->name = strdup(tmp ? tmp + 1 : groups[0])) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(vol->name, tmp ? tmp + 1 : groups[0]) < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (vol->target.path == NULL) {
|
||||
if ((devpath = strdup(groups[0])) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(devpath, groups[0]) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Now figure out the stable path
|
||||
*
|
||||
|
@ -92,10 +88,8 @@ virStorageBackendDiskMakeDataVol(virStoragePoolObjPtr pool,
|
|||
|
||||
if (vol->key == NULL) {
|
||||
/* XXX base off a unique key of the underlying disk */
|
||||
if ((vol->key = strdup(vol->target.path)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(vol->key, vol->target.path) < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (vol->source.extents == NULL) {
|
||||
|
@ -119,11 +113,9 @@ virStorageBackendDiskMakeDataVol(virStoragePoolObjPtr pool,
|
|||
return -1;
|
||||
}
|
||||
|
||||
if ((vol->source.extents[0].path =
|
||||
strdup(pool->def->source.devices[0].path)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(vol->source.extents[0].path,
|
||||
pool->def->source.devices[0].path) < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Refresh allocation/capacity/perms */
|
||||
|
@ -485,10 +477,8 @@ virStorageBackendDiskPartFormat(virStoragePoolObjPtr pool,
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
if ((*partFormat = strdup(partedFormat)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(*partFormat, partedFormat) < 0)
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
/* create primary partition as long as it is possible
|
||||
and after that check if an extended partition exists
|
||||
|
@ -527,10 +517,8 @@ virStorageBackendDiskPartFormat(virStoragePoolObjPtr pool,
|
|||
}
|
||||
}
|
||||
} else {
|
||||
if ((*partFormat = strdup("primary")) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(*partFormat, "primary") < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -207,11 +207,9 @@ virStorageBackendFileSystemNetFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTR
|
|||
}
|
||||
src->nhost = 1;
|
||||
|
||||
if (!(src->hosts[0].name = strdup(state->host)) ||
|
||||
!(src->dir = strdup(path))) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(src->hosts[0].name, state->host) < 0 ||
|
||||
VIR_STRDUP(src->dir, path) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
src->format = VIR_STORAGE_POOL_NETFS_NFS;
|
||||
|
||||
ret = 0;
|
||||
|
@ -395,10 +393,8 @@ virStorageBackendFileSystemMount(virStoragePoolObjPtr pool) {
|
|||
}
|
||||
|
||||
} else {
|
||||
if ((src = strdup(pool->def->source.devices[0].path)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(src, pool->def->source.devices[0].path) < 0)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (netauto)
|
||||
|
@ -571,10 +567,8 @@ virStorageBackendFileSystemProbe(const char *device,
|
|||
goto error;
|
||||
}
|
||||
|
||||
if ((libblkid_format = strdup(format)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(libblkid_format, format) < 0)
|
||||
goto error;
|
||||
}
|
||||
|
||||
names[0] = libblkid_format;
|
||||
names[1] = NULL;
|
||||
|
@ -749,10 +743,8 @@ virStorageBackendFileSystemBuild(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
goto error;
|
||||
}
|
||||
|
||||
if ((parent = strdup(pool->def->target.path)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(parent, pool->def->target.path) < 0)
|
||||
goto error;
|
||||
}
|
||||
if (!(p = strrchr(parent, '/'))) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("path '%s' is not absolute"),
|
||||
|
@ -833,8 +825,8 @@ virStorageBackendFileSystemRefresh(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
if (VIR_ALLOC(vol) < 0)
|
||||
goto no_memory;
|
||||
|
||||
if ((vol->name = strdup(ent->d_name)) == NULL)
|
||||
goto no_memory;
|
||||
if (VIR_STRDUP(vol->name, ent->d_name) < 0)
|
||||
goto cleanup;
|
||||
|
||||
vol->type = VIR_STORAGE_VOL_FILE;
|
||||
vol->target.format = VIR_STORAGE_FILE_RAW; /* Real value is filled in during probe */
|
||||
|
@ -843,8 +835,8 @@ virStorageBackendFileSystemRefresh(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
vol->name) == -1)
|
||||
goto no_memory;
|
||||
|
||||
if ((vol->key = strdup(vol->target.path)) == NULL)
|
||||
goto no_memory;
|
||||
if (VIR_STRDUP(vol->key, vol->target.path) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if ((ret = virStorageBackendProbeTarget(&vol->target,
|
||||
&backingStore,
|
||||
|
@ -1011,13 +1003,7 @@ virStorageBackendFileSystemVolCreate(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
}
|
||||
|
||||
VIR_FREE(vol->key);
|
||||
vol->key = strdup(vol->target.path);
|
||||
if (vol->key == NULL) {
|
||||
virReportOOMError();
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return VIR_STRDUP(vol->key, vol->target.path);
|
||||
}
|
||||
|
||||
static int createFileDir(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
|
|
|
@ -125,13 +125,8 @@ virStorageBackendISCSIExtractSession(virStoragePoolObjPtr pool,
|
|||
{
|
||||
char **session = data;
|
||||
|
||||
if (STREQ(groups[1], pool->def->source.devices[0].path)) {
|
||||
if ((*session = strdup(groups[0])) == NULL) {
|
||||
virReportOOMError();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (STREQ(groups[1], pool->def->source.devices[0].path))
|
||||
return VIR_STRDUP(*session, groups[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -247,10 +242,8 @@ virStorageBackendIQNFound(const char *initiatoriqn,
|
|||
"of '%s'"), ISCSIADM);
|
||||
goto out;
|
||||
}
|
||||
*ifacename = strndup(line, token - line);
|
||||
if (*ifacename == NULL) {
|
||||
if (VIR_STRNDUP(*ifacename, line, token - line) < 0) {
|
||||
ret = IQN_ERROR;
|
||||
virReportOOMError();
|
||||
goto out;
|
||||
}
|
||||
VIR_DEBUG("Found interface '%s' with IQN '%s'", *ifacename, iqn);
|
||||
|
@ -499,10 +492,8 @@ virStorageBackendISCSIGetTargets(virStoragePoolObjPtr pool ATTRIBUTE_UNUSED,
|
|||
struct virStorageBackendISCSITargetList *list = data;
|
||||
char *target;
|
||||
|
||||
if (!(target = strdup(groups[1]))) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(target, groups[1]) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (VIR_REALLOC_N(list->targets, list->ntargets + 1) < 0) {
|
||||
VIR_FREE(target);
|
||||
|
|
|
@ -105,10 +105,8 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
|
|||
is_new_vol = true;
|
||||
vol->type = VIR_STORAGE_VOL_BLOCK;
|
||||
|
||||
if ((vol->name = strdup(groups[0])) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(vol->name, groups[0]) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_REALLOC_N(pool->volumes.objs,
|
||||
pool->volumes.count + 1)) {
|
||||
|
@ -142,11 +140,8 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
|
|||
vol->backingStore.format = VIR_STORAGE_POOL_LOGICAL_LVM2;
|
||||
}
|
||||
|
||||
if (vol->key == NULL &&
|
||||
(vol->key = strdup(groups[2])) == NULL) {
|
||||
virReportOOMError();
|
||||
if (!vol->key && VIR_STRDUP(vol->key, groups[2]) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStorageBackendUpdateVolInfo(vol, 1) < 0)
|
||||
goto cleanup;
|
||||
|
@ -184,7 +179,8 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
|
|||
}
|
||||
|
||||
/* Now parse the "devices" field separately */
|
||||
regex = strdup(regex_unit);
|
||||
if (VIR_STRDUP(regex, regex_unit) < 0)
|
||||
goto cleanup;
|
||||
|
||||
for (i = 1; i < nextents; i++) {
|
||||
if (VIR_REALLOC_N(regex, strlen(regex) + strlen(regex_unit) + 2) < 0) {
|
||||
|
@ -234,23 +230,19 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
|
|||
/* vars[0] is skipped */
|
||||
for (i = 0; i < nextents; i++) {
|
||||
int j, len;
|
||||
const char *offset_str = NULL;
|
||||
char *offset_str = NULL;
|
||||
|
||||
j = (i * 2) + 1;
|
||||
len = vars[j].rm_eo - vars[j].rm_so;
|
||||
p[vars[j].rm_eo] = '\0';
|
||||
|
||||
if ((vol->source.extents[vol->source.nextent].path =
|
||||
strndup(p + vars[j].rm_so, len)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRNDUP(vol->source.extents[vol->source.nextent].path,
|
||||
p + vars[j].rm_so, len) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
len = vars[j + 1].rm_eo - vars[j + 1].rm_so;
|
||||
if (!(offset_str = strndup(p + vars[j + 1].rm_so, len))) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRNDUP(offset_str, p + vars[j + 1].rm_so, len) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (virStrToLong_ull(offset_str, NULL, 10, &offset) < 0) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
|
@ -367,13 +359,9 @@ virStorageBackendLogicalFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTRIBUTE_
|
|||
virStoragePoolSourceDevicePtr dev;
|
||||
virStoragePoolSource *thisSource;
|
||||
|
||||
pvname = strdup(groups[0]);
|
||||
vgname = strdup(groups[1]);
|
||||
|
||||
if (pvname == NULL || vgname == NULL) {
|
||||
virReportOOMError();
|
||||
goto err_no_memory;
|
||||
}
|
||||
if (VIR_STRDUP(pvname, groups[0]) < 0 ||
|
||||
VIR_STRDUP(vgname, groups[1]) < 0)
|
||||
goto error;
|
||||
|
||||
thisSource = NULL;
|
||||
for (i = 0 ; i < sourceList->nsources; i++) {
|
||||
|
@ -385,7 +373,7 @@ virStorageBackendLogicalFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTRIBUTE_
|
|||
|
||||
if (thisSource == NULL) {
|
||||
if (!(thisSource = virStoragePoolSourceListNewSource(sourceList)))
|
||||
goto err_no_memory;
|
||||
goto error;
|
||||
|
||||
thisSource->name = vgname;
|
||||
}
|
||||
|
@ -394,7 +382,7 @@ virStorageBackendLogicalFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTRIBUTE_
|
|||
|
||||
if (VIR_REALLOC_N(thisSource->devices, thisSource->ndevice + 1) != 0) {
|
||||
virReportOOMError();
|
||||
goto err_no_memory;
|
||||
goto error;
|
||||
}
|
||||
|
||||
dev = &thisSource->devices[thisSource->ndevice];
|
||||
|
@ -406,7 +394,7 @@ virStorageBackendLogicalFindPoolSourcesFunc(virStoragePoolObjPtr pool ATTRIBUTE_
|
|||
|
||||
return 0;
|
||||
|
||||
err_no_memory:
|
||||
error:
|
||||
VIR_FREE(pvname);
|
||||
VIR_FREE(vgname);
|
||||
|
||||
|
|
|
@ -99,11 +99,8 @@ virStorageBackendMpathNewVol(virStoragePoolObjPtr pool,
|
|||
}
|
||||
|
||||
/* XXX should use logical unit's UUID instead */
|
||||
vol->key = strdup(vol->target.path);
|
||||
if (vol->key == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(vol->key, vol->target.path) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_REALLOC_N(pool->volumes.objs,
|
||||
pool->volumes.count + 1) < 0) {
|
||||
|
|
|
@ -334,10 +334,9 @@ static int virStorageBackendRBDRefreshPool(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
if (VIR_ALLOC(vol) < 0)
|
||||
goto out_of_memory;
|
||||
|
||||
vol->name = strdup(name);
|
||||
if (vol->name == NULL) {
|
||||
if (VIR_STRDUP(vol->name, name) < 0) {
|
||||
VIR_FREE(vol);
|
||||
goto out_of_memory;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
name += strlen(name) + 1;
|
||||
|
|
|
@ -188,8 +188,7 @@ virStorageBackendSCSISerial(const char *dev)
|
|||
*nl = '\0';
|
||||
} else {
|
||||
VIR_FREE(serial);
|
||||
if (!(serial = strdup(dev)))
|
||||
virReportOOMError();
|
||||
ignore_value(VIR_STRDUP(serial, dev));
|
||||
}
|
||||
|
||||
#ifdef WITH_UDEV
|
||||
|
@ -333,10 +332,7 @@ getNewStyleBlockDevice(const char *lun_path,
|
|||
continue;
|
||||
}
|
||||
|
||||
*block_device = strdup(block_dirent->d_name);
|
||||
|
||||
if (*block_device == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(*block_device, block_dirent->d_name) < 0) {
|
||||
closedir(block_dir);
|
||||
retval = -1;
|
||||
goto out;
|
||||
|
@ -373,10 +369,7 @@ getOldStyleBlockDevice(const char *lun_path ATTRIBUTE_UNUSED,
|
|||
retval = -1;
|
||||
} else {
|
||||
blockp++;
|
||||
*block_device = strdup(blockp);
|
||||
|
||||
if (*block_device == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(*block_device, blockp) < 0) {
|
||||
retval = -1;
|
||||
goto out;
|
||||
}
|
||||
|
@ -630,8 +623,10 @@ getAdapterName(virStoragePoolSourceAdapter adapter)
|
|||
{
|
||||
char *name = NULL;
|
||||
|
||||
if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
|
||||
return strdup(adapter.data.name);
|
||||
if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST) {
|
||||
ignore_value(VIR_STRDUP(name, adapter.data.name));
|
||||
return name;
|
||||
}
|
||||
|
||||
if (!(name = virGetFCHostNameByWWN(NULL,
|
||||
adapter.data.fchost.wwnn,
|
||||
|
|
|
@ -269,11 +269,7 @@ virStorageBackendSheepdogRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
|
|||
}
|
||||
|
||||
VIR_FREE(vol->target.path);
|
||||
if (!(vol->target.path = strdup(vol->name))) {
|
||||
virReportOOMError();
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ignore_value(VIR_STRDUP(vol->target.path, vol->name));
|
||||
cleanup:
|
||||
virCommandFree(cmd);
|
||||
return ret;
|
||||
|
|
|
@ -144,8 +144,8 @@ storageStateInitialize(bool privileged,
|
|||
storageDriverLock(driverState);
|
||||
|
||||
if (privileged) {
|
||||
if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL)
|
||||
goto out_of_memory;
|
||||
if (VIR_STRDUP(base, SYSCONFDIR "/libvirt") < 0)
|
||||
goto error;
|
||||
} else {
|
||||
base = virGetUserConfigDirectory();
|
||||
if (!base)
|
||||
|
@ -336,9 +336,8 @@ storageConnectListStoragePools(virConnectPtr conn,
|
|||
for (i = 0 ; i < driver->pools.count && got < nnames ; i++) {
|
||||
virStoragePoolObjLock(driver->pools.objs[i]);
|
||||
if (virStoragePoolObjIsActive(driver->pools.objs[i])) {
|
||||
if (!(names[got] = strdup(driver->pools.objs[i]->def->name))) {
|
||||
if (VIR_STRDUP(names[got], driver->pools.objs[i]->def->name) < 0) {
|
||||
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
||||
virReportOOMError();
|
||||
goto cleanup;
|
||||
}
|
||||
got++;
|
||||
|
@ -384,9 +383,8 @@ storageConnectListDefinedStoragePools(virConnectPtr conn,
|
|||
for (i = 0 ; i < driver->pools.count && got < nnames ; i++) {
|
||||
virStoragePoolObjLock(driver->pools.objs[i]);
|
||||
if (!virStoragePoolObjIsActive(driver->pools.objs[i])) {
|
||||
if (!(names[got] = strdup(driver->pools.objs[i]->def->name))) {
|
||||
if (VIR_STRDUP(names[got], driver->pools.objs[i]->def->name) < 0) {
|
||||
virStoragePoolObjUnlock(driver->pools.objs[i]);
|
||||
virReportOOMError();
|
||||
goto cleanup;
|
||||
}
|
||||
got++;
|
||||
|
@ -1117,10 +1115,8 @@ storagePoolListVolumes(virStoragePoolPtr obj,
|
|||
}
|
||||
|
||||
for (i = 0 ; i < pool->volumes.count && n < maxnames ; i++) {
|
||||
if ((names[n++] = strdup(pool->volumes.objs[i]->name)) == NULL) {
|
||||
virReportOOMError();
|
||||
if (VIR_STRDUP(names[n++], pool->volumes.objs[i]->name) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
virStoragePoolObjUnlock(pool);
|
||||
|
@ -2340,9 +2336,7 @@ storageVolGetPath(virStorageVolPtr obj) {
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = strdup(vol->target.path);
|
||||
if (ret == NULL)
|
||||
virReportOOMError();
|
||||
ignore_value(VIR_STRDUP(ret, vol->target.path));
|
||||
|
||||
cleanup:
|
||||
if (pool)
|
||||
|
|
Loading…
Reference in New Issue