[libvirt] [PATCH 3/6] qemu_conf: Use more of VIR_AUTOFREE()
Daniel Henrique Barboza
danielhb413 at gmail.com
Mon Sep 9 19:09:44 UTC 2019
On 9/9/19 1:00 PM, Michal Privoznik wrote:
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
make syntax-check wasn't happy about this patch, at least in my
box. This adjustment make it happy again:
[danielhb at rekt libvirt]$ git diff
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index c3255a6f54..65dffd59f2 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -198,9 +198,8 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool
privileged)
rundir = virGetUserRuntimeDirectory();
if (!rundir)
goto error;
- if (virAsprintf(&cfg->stateDir, "%s/qemu/run", rundir) < 0) {
+ if (virAsprintf(&cfg->stateDir, "%s/qemu/run", rundir) < 0)
goto error;
- }
if (virAsprintf(&cfg->swtpmStateDir, "%s/swtpm",
cfg->stateDir) < 0)
goto error;
Patch looks good otherwise.
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> src/qemu/qemu_conf.c | 130 +++++++++++++------------------------------
> 1 file changed, 40 insertions(+), 90 deletions(-)
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index f11df03cf8..c3255a6f54 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -181,37 +181,26 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged)
> virGetGroupID("tss", &cfg->swtpm_group) < 0)
> cfg->swtpm_group = 0; /* fall back to root */
> } else {
> - char *rundir;
> - char *cachedir;
> + VIR_AUTOFREE(char *) rundir = NULL;
> + VIR_AUTOFREE(char *) cachedir = NULL;
>
> cachedir = virGetUserCacheDirectory();
> if (!cachedir)
> goto error;
>
> - if (virAsprintf(&cfg->logDir,
> - "%s/qemu/log", cachedir) < 0) {
> - VIR_FREE(cachedir);
> + if (virAsprintf(&cfg->logDir, "%s/qemu/log", cachedir) < 0)
> goto error;
> - }
> - if (virAsprintf(&cfg->swtpmLogDir,
> - "%s/qemu/log", cachedir) < 0) {
> - VIR_FREE(cachedir);
> + if (virAsprintf(&cfg->swtpmLogDir, "%s/qemu/log", cachedir) < 0)
> goto error;
> - }
> - if (virAsprintf(&cfg->cacheDir, "%s/qemu/cache", cachedir) < 0) {
> - VIR_FREE(cachedir);
> + if (virAsprintf(&cfg->cacheDir, "%s/qemu/cache", cachedir) < 0)
> goto error;
> - }
> - VIR_FREE(cachedir);
>
> rundir = virGetUserRuntimeDirectory();
> if (!rundir)
> goto error;
> if (virAsprintf(&cfg->stateDir, "%s/qemu/run", rundir) < 0) {
> - VIR_FREE(rundir);
> goto error;
> }
> - VIR_FREE(rundir);
>
> if (virAsprintf(&cfg->swtpmStateDir, "%s/swtpm", cfg->stateDir) < 0)
> goto error;
> @@ -1261,7 +1250,7 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
> {
> size_t i, j;
> virCapsPtr caps;
> - virSecurityManagerPtr *sec_managers = NULL;
> + VIR_AUTOFREE(virSecurityManagerPtr) *sec_managers = NULL;
> /* Security driver data */
> const char *doi, *model, *lbl, *type;
> const int virtTypes[] = {VIR_DOMAIN_VIRT_KVM,
> @@ -1308,12 +1297,10 @@ virCapsPtr virQEMUDriverCreateCapabilities(virQEMUDriverPtr driver)
> VIR_DEBUG("Initialized caps for security driver \"%s\" with "
> "DOI \"%s\"", model, doi);
> }
> - VIR_FREE(sec_managers);
>
> return caps;
>
> error:
> - VIR_FREE(sec_managers);
> virObjectUnref(caps);
> return NULL;
> }
> @@ -1485,31 +1472,26 @@ qemuCheckUnprivSGIO(virHashTablePtr sharedDevices,
> const char *device_path,
> int sgio)
> {
> - char *sysfs_path = NULL;
> - char *key = NULL;
> + VIR_AUTOFREE(char *) sysfs_path = NULL;
> + VIR_AUTOFREE(char *) key = NULL;
> int val;
> - int ret = -1;
>
> if (!(sysfs_path = virGetUnprivSGIOSysfsPath(device_path, NULL)))
> - goto cleanup;
> + return -1;
>
> /* It can't be conflict if unpriv_sgio is not supported by kernel. */
> - if (!virFileExists(sysfs_path)) {
> - ret = 0;
> - goto cleanup;
> - }
> + if (!virFileExists(sysfs_path))
> + return 0;
>
> if (!(key = qemuGetSharedDeviceKey(device_path)))
> - goto cleanup;
> + return -1;
>
> /* It can't be conflict if no other domain is sharing it. */
> - if (!(virHashLookup(sharedDevices, key))) {
> - ret = 0;
> - goto cleanup;
> - }
> + if (!(virHashLookup(sharedDevices, key)))
> + return 0;
>
> if (virGetDeviceUnprivSGIO(device_path, NULL, &val) < 0)
> - goto cleanup;
> + return -1;
>
> /* Error message on failure needs to be handled in caller
> * since there is more specific knowledge of device
> @@ -1519,16 +1501,10 @@ qemuCheckUnprivSGIO(virHashTablePtr sharedDevices,
> sgio == VIR_DOMAIN_DEVICE_SGIO_DEFAULT)) ||
> (val == 1 &&
> sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED))) {
> - ret = -2;
> - goto cleanup;
> + return -2;
> }
>
> - ret = 0;
> -
> - cleanup:
> - VIR_FREE(sysfs_path);
> - VIR_FREE(key);
> - return ret;
> + return 0;
> }
>
>
> @@ -1674,7 +1650,7 @@ qemuSharedDiskAddRemoveInternal(virQEMUDriverPtr driver,
> const char *name,
> bool addDisk)
> {
> - char *key = NULL;
> + VIR_AUTOFREE(char *) key = NULL;
> int ret = -1;
>
> if (virStorageSourceIsEmpty(disk->src) ||
> @@ -1701,7 +1677,6 @@ qemuSharedDiskAddRemoveInternal(virQEMUDriverPtr driver,
> ret = 0;
> cleanup:
> qemuDriverUnlock(driver);
> - VIR_FREE(key);
> return ret;
> }
>
> @@ -1739,7 +1714,7 @@ qemuGetHostdevPath(virDomainHostdevDefPtr hostdev)
> {
> virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi;
> virDomainHostdevSubsysSCSIHostPtr scsihostsrc = &scsisrc->u.host;
> - char *dev_name = NULL;
> + VIR_AUTOFREE(char *) dev_name = NULL;
> char *dev_path = NULL;
>
> if (!(dev_name = virSCSIDeviceGetDevName(NULL,
> @@ -1747,12 +1722,9 @@ qemuGetHostdevPath(virDomainHostdevDefPtr hostdev)
> scsihostsrc->bus,
> scsihostsrc->target,
> scsihostsrc->unit)))
> - goto cleanup;
> + return NULL;
>
> ignore_value(virAsprintf(&dev_path, "/dev/%s", dev_name));
> -
> - cleanup:
> - VIR_FREE(dev_name);
> return dev_path;
> }
>
> @@ -1763,18 +1735,16 @@ qemuSharedHostdevAddRemoveInternal(virQEMUDriverPtr driver,
> const char *name,
> bool addDevice)
> {
> - char *dev_path = NULL;
> - char *key = NULL;
> + VIR_AUTOFREE(char *) dev_path = NULL;
> + VIR_AUTOFREE(char *) key = NULL;
> int ret = -1;
>
> if (!qemuIsSharedHostdev(hostdev))
> return 0;
>
> - if (!(dev_path = qemuGetHostdevPath(hostdev)))
> - goto cleanup;
> -
> - if (!(key = qemuGetSharedDeviceKey(dev_path)))
> - goto cleanup;
> + if (!(dev_path = qemuGetHostdevPath(hostdev)) ||
> + !(key = qemuGetSharedDeviceKey(dev_path)))
> + return -1;
>
> qemuDriverLock(driver);
>
> @@ -1785,11 +1755,7 @@ qemuSharedHostdevAddRemoveInternal(virQEMUDriverPtr driver,
>
> qemuDriverUnlock(driver);
>
> - cleanup:
> - VIR_FREE(dev_path);
> - VIR_FREE(key);
> return ret;
> -
> }
>
> static int
> @@ -1863,10 +1829,9 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
> {
> virDomainDiskDefPtr disk = NULL;
> virDomainHostdevDefPtr hostdev = NULL;
> - char *sysfs_path = NULL;
> + VIR_AUTOFREE(char *) sysfs_path = NULL;
> const char *path = NULL;
> int val = -1;
> - int ret = -1;
>
> /* "sgio" is only valid for block disk; cdrom
> * and floopy disk can have empty source.
> @@ -1889,7 +1854,7 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
> virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> _("'sgio' is not supported for SCSI "
> "generic device yet "));
> - goto cleanup;
> + return -1;
> }
>
> return 0;
> @@ -1898,7 +1863,7 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
> }
>
> if (!(sysfs_path = virGetUnprivSGIOSysfsPath(path, NULL)))
> - goto cleanup;
> + return -1;
>
> /* By default, filter the SG_IO commands, i.e. set unpriv_sgio to 0. */
> val = (disk->sgio == VIR_DOMAIN_DEVICE_SGIO_UNFILTERED);
> @@ -1909,13 +1874,9 @@ qemuSetUnprivSGIO(virDomainDeviceDefPtr dev)
> */
> if ((virFileExists(sysfs_path) || val == 1) &&
> virSetDeviceUnprivSGIO(path, NULL, val) < 0)
> - goto cleanup;
> + return -1;
>
> - ret = 0;
> -
> - cleanup:
> - VIR_FREE(sysfs_path);
> - return ret;
> + return 0;
> }
>
> int qemuDriverAllocateID(virQEMUDriverPtr driver)
> @@ -1951,14 +1912,12 @@ char *
> qemuGetDomainHugepagePath(const virDomainDef *def,
> virHugeTLBFSPtr hugepage)
> {
> - char *base = qemuGetBaseHugepagePath(hugepage);
> - char *domPath = virDomainDefGetShortName(def);
> + VIR_AUTOFREE(char *) base = qemuGetBaseHugepagePath(hugepage);
> + VIR_AUTOFREE(char *) domPath = virDomainDefGetShortName(def);
> char *ret = NULL;
>
> if (base && domPath)
> ignore_value(virAsprintf(&ret, "%s/%s", base, domPath));
> - VIR_FREE(domPath);
> - VIR_FREE(base);
> return ret;
> }
>
> @@ -2019,20 +1978,15 @@ qemuGetMemoryBackingDomainPath(const virDomainDef *def,
> virQEMUDriverConfigPtr cfg,
> char **path)
> {
> - char *shortName = NULL;
> - char *base = NULL;
> - int ret = -1;
> + VIR_AUTOFREE(char *) shortName = NULL;
> + VIR_AUTOFREE(char *) base = NULL;
>
> if (!(shortName = virDomainDefGetShortName(def)) ||
> qemuGetMemoryBackingBasePath(cfg, &base) < 0 ||
> virAsprintf(path, "%s/%s", base, shortName) < 0)
> - goto cleanup;
> + return -1;
>
> - ret = 0;
> - cleanup:
> - VIR_FREE(base);
> - VIR_FREE(shortName);
> - return ret;
> + return 0;
> }
>
>
> @@ -2054,22 +2008,18 @@ qemuGetMemoryBackingPath(const virDomainDef *def,
> const char *alias,
> char **memPath)
> {
> - char *domainPath = NULL;
> - int ret = -1;
> + VIR_AUTOFREE(char *) domainPath = NULL;
>
> if (!alias) {
> /* This should never happen (TM) */
> virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> _("memory device alias is not assigned"));
> - goto cleanup;
> + return -1;
> }
>
> if (qemuGetMemoryBackingDomainPath(def, cfg, &domainPath) < 0 ||
> virAsprintf(memPath, "%s/%s", domainPath, alias) < 0)
> - goto cleanup;
> + return -1;
>
> - ret = 0;
> - cleanup:
> - VIR_FREE(domainPath);
> - return ret;
> + return 0;
> }
More information about the libvir-list
mailing list