[PATCH 4/5] testQemuMonitorJSONqemuMonitorJSONGetTargetArch: Fix uninitialized use of 'arch'

Peter Krempa pkrempa at redhat.com
Thu Mar 5 09:52:01 UTC 2020


Refactor the cleanup control flow and use g_autofree for 'arch' so that
it's mandated that it's initialized.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 tests/qemumonitorjsontest.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index e9f95e317d..c7049bcdf0 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2162,8 +2162,7 @@ testQemuMonitorJSONqemuMonitorJSONGetTargetArch(const void *opaque)
 {
     const testGenericData *data = opaque;
     virDomainXMLOptionPtr xmlopt = data->xmlopt;
-    int ret = -1;
-    char *arch;
+    g_autofree char *arch = NULL;
     g_autoptr(qemuMonitorTest) test = NULL;

     if (!(test = qemuMonitorTestNewSchema(xmlopt, data->schema)))
@@ -2176,22 +2175,19 @@ testQemuMonitorJSONqemuMonitorJSONGetTargetArch(const void *opaque)
                                "    },"
                                "    \"id\": \"libvirt-21\""
                                "}") < 0)
-        goto cleanup;
+        return -1;

     if (!(arch = qemuMonitorJSONGetTargetArch(qemuMonitorTestGetMonitor(test))))
-        goto cleanup;
+        return -1;

     if (STRNEQ(arch, "x86_64")) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        "Unexpected architecture %s, expecting x86_64",
                        arch);
-        goto cleanup;
+        return -1;
     }

-    ret = 0;
- cleanup:
-    VIR_FREE(arch);
-    return ret;
+    return 0;
 }

 static int
-- 
2.24.1




More information about the libvir-list mailing list