Automatically free 'newxml' and remove the 'cleanup' label and
'ret'
variable.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
tools/virsh-volume.c | 37 ++++++++++++++-----------------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git a/tools/virsh-volume.c b/tools/virsh-volume.c
index 4f23481180..b7a1ddb9e5 100644
--- a/tools/virsh-volume.c
+++ b/tools/virsh-volume.c
@@ -570,12 +570,11 @@ cmdVolClone(vshControl *ctl, const vshCmd *cmd)
g_autoptr(virshStorageVol) newvol = NULL;
const char *name = NULL;
g_autofree char *origxml = NULL;
- xmlChar *newxml = NULL;
- bool ret = false;
+ g_autofree xmlChar *newxml = NULL;
unsigned int flags = 0;
if (!(origvol = virshCommandOptVol(ctl, cmd, "vol", "pool",
NULL)))
- goto cleanup;
+ return false;
if (vshCommandOptBool(cmd, "prealloc-metadata"))
flags |= VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA;
@@ -586,38 +585,30 @@ cmdVolClone(vshControl *ctl, const vshCmd *cmd)
origpool = virStoragePoolLookupByVolume(origvol);
if (!origpool) {
vshError(ctl, "%s", _("failed to get parent pool"));
- goto cleanup;
+ return false;
}
if (vshCommandOptStringReq(ctl, cmd, "newname", &name) < 0)
- goto cleanup;
+ return false;
- origxml = virStorageVolGetXMLDesc(origvol, 0);
- if (!origxml)
- goto cleanup;
+ if (!(origxml = virStorageVolGetXMLDesc(origvol, 0)))
+ return false;
- newxml = virshMakeCloneXML(origxml, name);
- if (!newxml) {
+ if (!(newxml = virshMakeCloneXML(origxml, name))) {
vshError(ctl, "%s", _("Failed to allocate XML buffer"));
- goto cleanup;
+ return false;
}
- newvol = virStorageVolCreateXMLFrom(origpool, (char *) newxml, origvol, flags);
-
- if (newvol != NULL) {
- vshPrintExtra(ctl, _("Vol %s cloned from %s\n"),
- virStorageVolGetName(newvol), virStorageVolGetName(origvol));
- } else {
+ if (!(newvol = virStorageVolCreateXMLFrom(origpool, (char *) newxml,
+ origvol, flags))) {
vshError(ctl, _("Failed to clone vol from %s"),
virStorageVolGetName(origvol));
- goto cleanup;
+ return false;
}
- ret = true;
-
- cleanup:
- xmlFree(newxml);
- return ret;
+ vshPrintExtra(ctl, _("Vol %s cloned from %s\n"),
+ virStorageVolGetName(newvol), virStorageVolGetName(origvol));
+ return true;
}
/*
--
2.38.1