[libvirt] [PATCH v2 7/9] qemu_driver: use VIR_AUTOFREE() with strings 2/3

Daniel Henrique Barboza danielhb413 at gmail.com
Mon Sep 30 17:48:00 UTC 2019


Using VIR_AUTOFREE() in all strings of qemu_driver.c make the code
a bit tidier and smaller, sparing VIR_FREE() calls and sometimes a
whole 'cleanup' label.

This is a huge change due to the amount of char * declared in
this file, thus let's split it in 3. This is the second part.

Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
---
 src/qemu/qemu_driver.c | 86 +++++++++++++++---------------------------
 1 file changed, 30 insertions(+), 56 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 22c872e912..05736fbd26 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4103,11 +4103,11 @@ processWatchdogEvent(virQEMUDriverPtr driver,
 {
     int ret;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
-    char *dumpfile = getAutoDumpPath(driver, vm);
+    VIR_AUTOFREE(char *) dumpfile = getAutoDumpPath(driver, vm);
     unsigned int flags = VIR_DUMP_MEMORY_ONLY;
 
     if (!dumpfile)
-        goto cleanup;
+        return;
 
     switch (action) {
     case VIR_DOMAIN_WATCHDOG_ACTION_DUMP:
@@ -4115,7 +4115,7 @@ processWatchdogEvent(virQEMUDriverPtr driver,
                                        QEMU_ASYNC_JOB_DUMP,
                                        VIR_DOMAIN_JOB_OPERATION_DUMP,
                                        flags) < 0) {
-            goto cleanup;
+            return;
         }
 
         if (virDomainObjCheckActive(vm) < 0)
@@ -4136,14 +4136,11 @@ processWatchdogEvent(virQEMUDriverPtr driver,
                            "%s", _("Resuming after dump failed"));
         break;
     default:
-        goto cleanup;
+        return;
     }
 
  endjob:
     qemuDomainObjEndAsyncJob(driver, vm);
-
- cleanup:
-    VIR_FREE(dumpfile);
 }
 
 static int
@@ -4153,18 +4150,16 @@ doCoreDumpToAutoDumpPath(virQEMUDriverPtr driver,
 {
     int ret = -1;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
-    char *dumpfile = getAutoDumpPath(driver, vm);
+    VIR_AUTOFREE(char *) dumpfile = getAutoDumpPath(driver, vm);
 
     if (!dumpfile)
-        goto cleanup;
+        return -1;
 
     flags |= cfg->autoDumpBypassCache ? VIR_DUMP_BYPASS_CACHE: 0;
     if ((ret = doCoreDump(driver, vm, dumpfile, flags,
                           VIR_DOMAIN_CORE_DUMP_FORMAT_RAW)) < 0)
         virReportError(VIR_ERR_OPERATION_FAILED,
                        "%s", _("Dump failed"));
- cleanup:
-    VIR_FREE(dumpfile);
     return ret;
 }
 
@@ -4174,14 +4169,11 @@ qemuProcessGuestPanicEventInfo(virQEMUDriverPtr driver,
                                virDomainObjPtr vm,
                                qemuMonitorEventPanicInfoPtr info)
 {
-    char *msg = qemuMonitorGuestPanicEventInfoFormatMsg(info);
-    char *timestamp = virTimeStringNow();
+    VIR_AUTOFREE(char *) msg = qemuMonitorGuestPanicEventInfoFormatMsg(info);
+    VIR_AUTOFREE(char *) timestamp = virTimeStringNow();
 
     if (msg && timestamp)
         qemuDomainLogAppendMessage(driver, vm, "%s: panic %s\n", timestamp, msg);
-
-    VIR_FREE(timestamp);
-    VIR_FREE(msg);
 }
 
 
@@ -5077,7 +5069,7 @@ qemuDomainPinVcpuLive(virDomainObjPtr vm,
     virDomainVcpuDefPtr vcpuinfo;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     virCgroupPtr cgroup_vcpu = NULL;
-    char *str = NULL;
+    VIR_AUTOFREE(char *) str = NULL;
     virObjectEventPtr event = NULL;
     char paramField[VIR_TYPED_PARAM_FIELD_LENGTH] = "";
     virTypedParameterPtr eventParams = NULL;
@@ -5141,7 +5133,6 @@ qemuDomainPinVcpuLive(virDomainObjPtr vm,
  cleanup:
     virBitmapFree(tmpmap);
     virCgroupFree(&cgroup_vcpu);
-    VIR_FREE(str);
     virObjectEventStateQueue(driver->domainEventState, event);
     return ret;
 }
@@ -5282,7 +5273,7 @@ qemuDomainPinEmulator(virDomainPtr dom,
     virBitmapPtr pcpumap = NULL;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = NULL;
     virObjectEventPtr event = NULL;
-    char *str = NULL;
+    VIR_AUTOFREE(char *) str = NULL;
     virTypedParameterPtr eventParams = NULL;
     int eventNparams = 0;
     int eventMaxparams = 0;
@@ -5371,7 +5362,6 @@ qemuDomainPinEmulator(virDomainPtr dom,
     if (cgroup_emulator)
         virCgroupFree(&cgroup_emulator);
     virObjectEventStateQueue(driver->domainEventState, event);
-    VIR_FREE(str);
     virBitmapFree(pcpumap);
     virDomainObjEndAPI(&vm);
     return ret;
@@ -5753,7 +5743,7 @@ qemuDomainPinIOThread(virDomainPtr dom,
     virCgroupPtr cgroup_iothread = NULL;
     virObjectEventPtr event = NULL;
     char paramField[VIR_TYPED_PARAM_FIELD_LENGTH] = "";
-    char *str = NULL;
+    VIR_AUTOFREE(char *) str = NULL;
     virTypedParameterPtr eventParams = NULL;
     int eventNparams = 0;
     int eventMaxparams = 0;
@@ -5865,7 +5855,6 @@ qemuDomainPinIOThread(virDomainPtr dom,
     if (cgroup_iothread)
         virCgroupFree(&cgroup_iothread);
     virObjectEventStateQueue(driver->domainEventState, event);
-    VIR_FREE(str);
     virBitmapFree(pcpumap);
     virDomainObjEndAPI(&vm);
     return ret;
@@ -5877,7 +5866,7 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver,
                              unsigned int iothread_id)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    char *alias = NULL;
+    VIR_AUTOFREE(char *) alias = NULL;
     size_t idx;
     int ret = -1;
     unsigned int orig_niothreads = vm->def->niothreadids;
@@ -5953,7 +5942,6 @@ qemuDomainHotplugAddIOThread(virQEMUDriverPtr driver,
     }
     virDomainAuditIOThread(vm, orig_niothreads, new_niothreads,
                            "update", ret == 0);
-    VIR_FREE(alias);
     virJSONValueFree(props);
     return ret;
 
@@ -5998,7 +5986,7 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver,
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     size_t idx;
-    char *alias = NULL;
+    VIR_AUTOFREE(char *) alias = NULL;
     int rc = -1;
     int ret = -1;
     unsigned int orig_niothreads = vm->def->niothreadids;
@@ -6047,7 +6035,6 @@ qemuDomainHotplugDelIOThread(virQEMUDriverPtr driver,
     }
     virDomainAuditIOThread(vm, orig_niothreads, new_niothreads,
                            "update", rc == 0);
-    VIR_FREE(alias);
     return ret;
 
  exit_monitor:
@@ -6817,7 +6804,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
     virObjectEventPtr event;
     int intermediatefd = -1;
     virCommandPtr cmd = NULL;
-    char *errbuf = NULL;
+    VIR_AUTOFREE(char *) errbuf = NULL;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
     virQEMUSaveHeaderPtr header = &data->header;
     VIR_AUTOUNREF(qemuDomainSaveCookiePtr) cookie = NULL;
@@ -6936,7 +6923,6 @@ qemuDomainSaveImageStartVM(virConnectPtr conn,
 
  cleanup:
     virCommandFree(cmd);
-    VIR_FREE(errbuf);
     if (qemuSecurityRestoreSavedStateLabel(driver, vm, path) < 0)
         VIR_WARN("failed to restore save state label on %s", path);
     return ret;
@@ -6952,7 +6938,7 @@ qemuDomainRestoreFlags(virConnectPtr conn,
     qemuDomainObjPrivatePtr priv = NULL;
     virDomainDefPtr def = NULL;
     virDomainObjPtr vm = NULL;
-    char *xmlout = NULL;
+    VIR_AUTOFREE(char *) xmlout = NULL;
     const char *newxml = dxml;
     int fd = -1;
     int ret = -1;
@@ -7037,7 +7023,6 @@ qemuDomainRestoreFlags(virConnectPtr conn,
         ret = -1;
     virFileWrapperFdFree(wrapperFd);
     virQEMUSaveDataFree(data);
-    VIR_FREE(xmlout);
     if (vm && ret < 0)
         qemuDomainRemoveInactiveJob(driver, vm);
     virDomainObjEndAPI(&vm);
@@ -7160,7 +7145,7 @@ qemuDomainManagedSaveGetXMLDesc(virDomainPtr dom, unsigned int flags)
 {
     virQEMUDriverPtr driver = dom->conn->privateData;
     virDomainObjPtr vm;
-    char *path = NULL;
+    VIR_AUTOFREE(char *) path = NULL;
     char *ret = NULL;
     virDomainDefPtr def = NULL;
     int fd = -1;
@@ -7197,7 +7182,6 @@ qemuDomainManagedSaveGetXMLDesc(virDomainPtr dom, unsigned int flags)
     virDomainDefFree(def);
     VIR_FORCE_CLOSE(fd);
     virDomainObjEndAPI(&vm);
-    VIR_FREE(path);
     return ret;
 }
 
@@ -7208,7 +7192,7 @@ qemuDomainManagedSaveDefineXML(virDomainPtr dom, const char *dxml,
     virQEMUDriverPtr driver = dom->conn->privateData;
     virConnectPtr conn = dom->conn;
     virDomainObjPtr vm;
-    char *path = NULL;
+    VIR_AUTOFREE(char *) path = NULL;
     int ret = -1;
 
     if (!(vm = qemuDomainObjFromDomain(dom)))
@@ -7230,7 +7214,6 @@ qemuDomainManagedSaveDefineXML(virDomainPtr dom, const char *dxml,
 
  cleanup:
     virDomainObjEndAPI(&vm);
-    VIR_FREE(path);
     return ret;
 }
 
@@ -7249,7 +7232,7 @@ qemuDomainObjRestore(virConnectPtr conn,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     int fd = -1;
     int ret = -1;
-    char *xmlout = NULL;
+    VIR_AUTOFREE(char *) xmlout = NULL;
     virQEMUSaveDataPtr data = NULL;
     virFileWrapperFdPtr wrapperFd = NULL;
 
@@ -7306,7 +7289,6 @@ qemuDomainObjRestore(virConnectPtr conn,
 
  cleanup:
     virQEMUSaveDataFree(data);
-    VIR_FREE(xmlout);
     virDomainDefFree(def);
     VIR_FORCE_CLOSE(fd);
     if (virFileWrapperFdClose(wrapperFd) < 0)
@@ -7471,7 +7453,7 @@ qemuDomainObjStart(virConnectPtr conn,
                    qemuDomainAsyncJob asyncJob)
 {
     int ret = -1;
-    char *managed_save;
+    VIR_AUTOFREE(char *) managed_save = NULL;
     bool start_paused = (flags & VIR_DOMAIN_START_PAUSED) != 0;
     bool autodestroy = (flags & VIR_DOMAIN_START_AUTODESTROY) != 0;
     bool bypass_cache = (flags & VIR_DOMAIN_START_BYPASS_CACHE) != 0;
@@ -7489,7 +7471,7 @@ qemuDomainObjStart(virConnectPtr conn,
     managed_save = qemuDomainManagedSavePath(driver, vm);
 
     if (!managed_save)
-        goto cleanup;
+        return ret;
 
     if (virFileExists(managed_save)) {
         if (force_boot) {
@@ -7497,7 +7479,7 @@ qemuDomainObjStart(virConnectPtr conn,
                 virReportSystemError(errno,
                                      _("cannot remove managed save file %s"),
                                      managed_save);
-                goto cleanup;
+                return ret;
             }
             vm->hasManagedSave = false;
         } else {
@@ -7513,11 +7495,11 @@ qemuDomainObjStart(virConnectPtr conn,
                 else
                     vm->hasManagedSave = false;
 
-                goto cleanup;
+                return ret;
             } else if (ret < 0) {
                 VIR_WARN("Unable to restore from managed state %s. "
                          "Maybe the file is corrupted?", managed_save);
-                goto cleanup;
+                return ret;
             } else {
                 VIR_WARN("Ignoring incomplete managed state %s", managed_save);
                 priv->job.current->operation = op;
@@ -7544,8 +7526,6 @@ qemuDomainObjStart(virConnectPtr conn,
         }
     }
 
- cleanup:
-    VIR_FREE(managed_save);
     return ret;
 }
 
@@ -7693,7 +7673,7 @@ qemuDomainUndefineFlags(virDomainPtr dom,
     virQEMUDriverPtr driver = dom->conn->privateData;
     virDomainObjPtr vm;
     virObjectEventPtr event = NULL;
-    char *name = NULL;
+    VIR_AUTOFREE(char *) name = NULL;
     int ret = -1;
     int nsnapshots;
     int ncheckpoints;
@@ -7814,7 +7794,6 @@ qemuDomainUndefineFlags(virDomainPtr dom,
     qemuDomainObjEndJob(driver, vm);
 
  cleanup:
-    VIR_FREE(name);
     virDomainObjEndAPI(&vm);
     virObjectEventStateQueue(driver->domainEventState, event);
     return ret;
@@ -9152,7 +9131,8 @@ static int qemuDomainSetAutostart(virDomainPtr dom,
 {
     virQEMUDriverPtr driver = dom->conn->privateData;
     virDomainObjPtr vm;
-    char *configFile = NULL, *autostartLink = NULL;
+    VIR_AUTOFREE(char *) configFile = NULL;
+    VIR_AUTOFREE(char *) autostartLink = NULL;
     int ret = -1;
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = NULL;
 
@@ -9216,8 +9196,6 @@ static int qemuDomainSetAutostart(virDomainPtr dom,
     ret = 0;
 
  cleanup:
-    VIR_FREE(configFile);
-    VIR_FREE(autostartLink);
     virDomainObjEndAPI(&vm);
     return ret;
 }
@@ -9997,7 +9975,7 @@ qemuDomainSetNumaParamsLive(virDomainObjPtr vm,
 {
     virCgroupPtr cgroup_temp = NULL;
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    char *nodeset_str = NULL;
+    VIR_AUTOFREE(char *) nodeset_str = NULL;
     virDomainNumatuneMemMode mode;
     size_t i = 0;
     int ret = -1;
@@ -10047,7 +10025,6 @@ qemuDomainSetNumaParamsLive(virDomainObjPtr vm,
 
     ret = 0;
  cleanup:
-    VIR_FREE(nodeset_str);
     virCgroupFree(&cgroup_temp);
 
     return ret;
@@ -10190,7 +10167,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
     virDomainObjPtr vm = NULL;
     virDomainNumatuneMemMode tmpmode = VIR_DOMAIN_NUMATUNE_MEM_STRICT;
     qemuDomainObjPrivatePtr priv;
-    char *nodeset = NULL;
+    VIR_AUTOFREE(char *) nodeset = NULL;
     int ret = -1;
     virDomainDefPtr def = NULL;
     bool live = false;
@@ -10254,7 +10231,6 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
     ret = 0;
 
  cleanup:
-    VIR_FREE(nodeset);
     virDomainObjEndAPI(&vm);
     return ret;
 }
@@ -11121,7 +11097,7 @@ qemuDomainBlockResize(virDomainPtr dom,
     virDomainObjPtr vm;
     qemuDomainObjPrivatePtr priv;
     int ret = -1;
-    char *device = NULL;
+    VIR_AUTOFREE(char *) device = NULL;
     const char *nodename = NULL;
     virDomainDiskDefPtr disk = NULL;
 
@@ -11193,7 +11169,6 @@ qemuDomainBlockResize(virDomainPtr dom,
     qemuDomainObjEndJob(driver, vm);
 
  cleanup:
-    VIR_FREE(device);
     virDomainObjEndAPI(&vm);
     return ret;
 }
@@ -11902,7 +11877,7 @@ qemuDomainBlockPeek(virDomainPtr dom,
     virQEMUDriverPtr driver = dom->conn->privateData;
     virDomainDiskDefPtr disk = NULL;
     virDomainObjPtr vm;
-    char *tmpbuf = NULL;
+    VIR_AUTOFREE(char *) tmpbuf = NULL;
     ssize_t nread;
     int ret = -1;
 
@@ -11957,7 +11932,6 @@ qemuDomainBlockPeek(virDomainPtr dom,
     if (disk)
         virStorageFileDeinit(disk->src);
     virDomainObjEndAPI(&vm);
-    VIR_FREE(tmpbuf);
     return ret;
 }
 
-- 
2.21.0




More information about the libvir-list mailing list