[libvirt] [PATCH 4/5] virsh: Use VIR_AUTO machinery in cmdQemuMonitorCommand

Peter Krempa pkrempa at redhat.com
Mon Sep 16 12:45:35 UTC 2019


Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 tools/virsh-domain.c | 24 +++++++-----------------
 1 file changed, 7 insertions(+), 17 deletions(-)

diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 9913d703ec..8c24935938 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -9506,14 +9506,13 @@ static const vshCmdOptDef opts_qemu_monitor_command[] = {
 static bool
 cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)
 {
-    virDomainPtr dom = NULL;
-    bool ret = false;
-    char *monitor_cmd = NULL;
-    char *result = NULL;
+    VIR_AUTOPTR(virshDomain) dom = NULL;
+    VIR_AUTOFREE(char *) monitor_cmd = NULL;
+    VIR_AUTOFREE(char *) result = NULL;
     unsigned int flags = 0;
     const vshCmdOpt *opt = NULL;
     virBuffer buf = VIR_BUFFER_INITIALIZER;
-    virJSONValuePtr pretty = NULL;
+    VIR_AUTOPTR(virJSONValue) pretty = NULL;

     VSH_EXCLUSIVE_OPTIONS("hmp", "pretty");

@@ -9527,7 +9526,7 @@ cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)

     if (virBufferError(&buf)) {
         vshError(ctl, "%s", _("Failed to collect command"));
-        goto cleanup;
+        return false;
     }
     monitor_cmd = virBufferContentAndReset(&buf);

@@ -9535,7 +9534,7 @@ cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)
         flags |= VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP;

     if (virDomainQemuMonitorCommand(dom, monitor_cmd, &result, flags) < 0)
-        goto cleanup;
+        return false;

     if (vshCommandOptBool(cmd, "pretty")) {
         char *tmp;
@@ -9549,16 +9548,7 @@ cmdQemuMonitorCommand(vshControl *ctl, const vshCmd *cmd)
         }
     }
     vshPrint(ctl, "%s\n", result);
-
-    ret = true;
-
- cleanup:
-    VIR_FREE(result);
-    VIR_FREE(monitor_cmd);
-    virJSONValueFree(pretty);
-    virshDomainFree(dom);
-
-    return ret;
+    return true;
 }

 /*
-- 
2.21.0




More information about the libvir-list mailing list