[libvirt] [PATCH 2/3] qemu_hotplug.c: use VIR_AUTOFREE() in strings 2/3

Daniel Henrique Barboza danielhb413 at gmail.com
Wed Sep 18 19:53:07 UTC 2019


Using VIR_AUTOFREE() spare us from calling VIR_VREE() and
sometimes a whole 'cleanup' label can be erased as well.

There are quite a few strings in qemu_hotplug.c to be
auto-freed. This is the second part of this change.

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

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 5b1639b48d..787a4f01f5 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -2340,8 +2340,8 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
     VIR_AUTOUNREF(virQEMUDriverConfigPtr) cfg = virQEMUDriverGetConfig(driver);
     unsigned long long oldmem = virDomainDefGetMemoryTotal(vm->def);
     unsigned long long newmem = oldmem + mem->size;
-    char *devstr = NULL;
-    char *objalias = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
+    VIR_AUTOFREE(char *) objalias = NULL;
     bool objAdded = false;
     bool teardownlabel = false;
     bool teardowncgroup = false;
@@ -2438,8 +2438,6 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
     }
 
     virJSONValueFree(props);
-    VIR_FREE(devstr);
-    VIR_FREE(objalias);
     virDomainMemoryDefFree(mem);
     return ret;
 
@@ -2478,7 +2476,7 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver,
                               virDomainHostdevDefPtr hostdev)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    char *devstr = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
     bool added = false;
     bool teardowncgroup = false;
     bool teardownlabel = false;
@@ -2540,7 +2538,6 @@ qemuDomainAttachHostUSBDevice(virQEMUDriverPtr driver,
             qemuHostdevReAttachUSBDevices(driver, vm->def->name, &hostdev, 1);
         virDomainUSBAddressRelease(priv->usbaddrs, hostdev->info);
     }
-    VIR_FREE(devstr);
     return ret;
 }
 
@@ -2554,10 +2551,10 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver,
     int ret = -1;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     virErrorPtr orig_err;
-    char *devstr = NULL;
-    char *drvstr = NULL;
-    char *drivealias = NULL;
-    char *secobjAlias = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
+    VIR_AUTOFREE(char *) drvstr = NULL;
+    VIR_AUTOFREE(char *) drivealias = NULL;
+    VIR_AUTOFREE(char *) secobjAlias = NULL;
     bool teardowncgroup = false;
     bool teardownlabel = false;
     bool teardowndevice = false;
@@ -2659,10 +2656,6 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver,
     }
     qemuDomainSecretHostdevDestroy(hostdev);
     virJSONValueFree(secobjProps);
-    VIR_FREE(secobjAlias);
-    VIR_FREE(drivealias);
-    VIR_FREE(drvstr);
-    VIR_FREE(devstr);
     return ret;
 
  exit_monitor:
@@ -2692,9 +2685,9 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driver,
     virDomainDeviceDef dev = { VIR_DOMAIN_DEVICE_HOSTDEV,
                                { .hostdev = hostdev } };
     virDomainCCWAddressSetPtr ccwaddrs = NULL;
-    char *vhostfdName = NULL;
+    VIR_AUTOFREE(char *) vhostfdName = NULL;
     int vhostfd = -1;
-    char *devstr = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
     bool teardowncgroup = false;
     bool teardownlabel = false;
     bool teardowndevice = false;
@@ -2790,8 +2783,6 @@ qemuDomainAttachSCSIVHostDevice(virQEMUDriverPtr driver,
     virDomainCCWAddressSetFree(ccwaddrs);
 
     VIR_FORCE_CLOSE(vhostfd);
-    VIR_FREE(vhostfdName);
-    VIR_FREE(devstr);
     return ret;
 }
 
@@ -2802,7 +2793,7 @@ qemuDomainAttachMediatedDevice(virQEMUDriverPtr driver,
                                virDomainHostdevDefPtr hostdev)
 {
     int ret = -1;
-    char *devstr = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
     bool added = false;
     bool teardowncgroup = false;
     bool teardownlabel = false;
@@ -2887,7 +2878,6 @@ qemuDomainAttachMediatedDevice(virQEMUDriverPtr driver,
                                                1);
         qemuDomainReleaseDeviceAddress(vm, hostdev->info);
     }
-    VIR_FREE(devstr);
     return ret;
 }
 
@@ -2952,9 +2942,9 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
                             virDomainShmemDefPtr shmem)
 {
     int ret = -1;
-    char *shmstr = NULL;
-    char *charAlias = NULL;
-    char *memAlias = NULL;
+    VIR_AUTOFREE(char *) shmstr = NULL;
+    VIR_AUTOFREE(char *) charAlias = NULL;
+    VIR_AUTOFREE(char *) memAlias = NULL;
     bool release_backing = false;
     bool release_address = true;
     virErrorPtr orig_err = NULL;
@@ -3043,9 +3033,6 @@ qemuDomainAttachShmemDevice(virQEMUDriverPtr driver,
         qemuDomainReleaseDeviceAddress(vm, &shmem->info);
 
     virJSONValueFree(props);
-    VIR_FREE(memAlias);
-    VIR_FREE(charAlias);
-    VIR_FREE(shmstr);
 
     return ret;
 
@@ -3077,7 +3064,7 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver,
     virDomainDeviceDef dev = { VIR_DOMAIN_DEVICE_WATCHDOG, { .watchdog = watchdog } };
     virDomainWatchdogAction actualAction = watchdog->action;
     const char *actionStr = NULL;
-    char *watchdogstr = NULL;
+    VIR_AUTOFREE(char *) watchdogstr = NULL;
     bool releaseAddress = false;
     int rv;
 
@@ -3134,7 +3121,6 @@ qemuDomainAttachWatchdog(virQEMUDriverPtr driver,
  cleanup:
     if (releaseAddress)
         qemuDomainReleaseDeviceAddress(vm, &watchdog->info);
-    VIR_FREE(watchdogstr);
     return ret;
 }
 
@@ -3145,7 +3131,7 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
                             virDomainInputDefPtr input)
 {
     int ret = -1;
-    char *devstr = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
     qemuDomainObjPrivatePtr priv = vm->privateData;
     virDomainDeviceDef dev = { VIR_DOMAIN_DEVICE_INPUT,
                                { .input = input } };
@@ -3229,7 +3215,6 @@ qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
         virErrorRestore(&originalError);
     }
 
-    VIR_FREE(devstr);
     return ret;
 
  exit_monitor:
@@ -3253,8 +3238,8 @@ qemuDomainAttachVsockDevice(virQEMUDriverPtr driver,
     virErrorPtr originalError = NULL;
     const char *fdprefix = "vsockfd";
     bool releaseaddr = false;
-    char *fdname = NULL;
-    char *devstr = NULL;
+    VIR_AUTOFREE(char *) fdname = NULL;
+    VIR_AUTOFREE(char *) devstr = NULL;
     int ret = -1;
 
     if (vm->def->vsock) {
@@ -3305,8 +3290,6 @@ qemuDomainAttachVsockDevice(virQEMUDriverPtr driver,
         virErrorRestore(&originalError);
     }
 
-    VIR_FREE(devstr);
-    VIR_FREE(fdname);
     return ret;
 
  exit_monitor:
@@ -3986,22 +3969,21 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     time_t now = time(NULL);
     const char *expire;
-    char *validTo = NULL;
+    VIR_AUTOFREE(char *) validTo = NULL;
     const char *connected = NULL;
     const char *password;
     int ret = -1;
 
-    if (!auth->passwd && !defaultPasswd) {
-        ret = 0;
-        goto cleanup;
-    }
+    if (!auth->passwd && !defaultPasswd)
+        return ret;
+
     password = auth->passwd ? auth->passwd : defaultPasswd;
 
     if (auth->connected)
         connected = virDomainGraphicsAuthConnectedTypeToString(auth->connected);
 
     if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
-        goto cleanup;
+        return ret;
     ret = qemuMonitorSetPassword(priv->mon, type, password, connected);
 
     if (ret != 0)
@@ -4023,8 +4005,7 @@ qemuDomainChangeGraphicsPasswords(virQEMUDriverPtr driver,
  end_job:
     if (qemuDomainObjExitMonitor(driver, vm) < 0)
         ret = -1;
- cleanup:
-    VIR_FREE(validTo);
+
     return ret;
 }
 
@@ -4362,7 +4343,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
     qemuDomainObjPrivatePtr priv = vm->privateData;
     unsigned long long oldmem = virDomainDefGetMemoryTotal(vm->def);
     unsigned long long newmem = oldmem - mem->size;
-    char *backendAlias = NULL;
+    VIR_AUTOFREE(char *) backendAlias = NULL;
     int rc;
     int idx;
 
@@ -4377,8 +4358,6 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
     if (qemuDomainObjExitMonitor(driver, vm) < 0)
         rc = -1;
 
-    VIR_FREE(backendAlias);
-
     virDomainAuditMemory(vm, oldmem, newmem, "update", rc == 0);
     if (rc < 0)
         return -1;
@@ -4462,10 +4441,9 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
 {
     virDomainNetDefPtr net = NULL;
     size_t i;
-    int ret = -1;
     qemuDomainObjPrivatePtr priv = vm->privateData;
-    char *drivealias = NULL;
-    char *objAlias = NULL;
+    VIR_AUTOFREE(char *) drivealias = NULL;
+    VIR_AUTOFREE(char *) objAlias = NULL;
     bool is_vfio = false;
 
     VIR_DEBUG("Removing host device %s from domain %p %s",
@@ -4481,7 +4459,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
         virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc = &scsisrc->u.iscsi;
 
         if (!(drivealias = qemuAliasFromHostdev(hostdev)))
-            goto cleanup;
+            return -1;
 
         /* Look for the markers that the iSCSI hostdev was added with a
          * secret object to manage the username/password. If present, let's
@@ -4490,7 +4468,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
             virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_ISCSI_PASSWORD_SECRET) &&
             qemuDomainStorageSourceHasAuth(iscsisrc->src)) {
             if (!(objAlias = qemuDomainGetSecretAESAlias(hostdev->info->alias, false)))
-                goto cleanup;
+                return -1;
         }
 
         qemuDomainObjEnterMonitor(driver, vm);
@@ -4501,7 +4479,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
             ignore_value(qemuMonitorDelObject(priv->mon, objAlias));
 
         if (qemuDomainObjExitMonitor(driver, vm) < 0)
-            goto cleanup;
+            return -1;
     }
 
     if (hostdev->parentnet) {
@@ -4572,12 +4550,7 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
         virDomainNetDefFree(net);
     }
 
-    ret = 0;
-
- cleanup:
-    VIR_FREE(drivealias);
-    VIR_FREE(objAlias);
-    return ret;
+    return 0;
 }
 
 
-- 
2.21.0




More information about the libvir-list mailing list