From fbd1f5b48614454ac1ff8e1f6c99b2dd2b7c2c44 Mon Sep 17 00:00:00 2001 From: Sukrit Bhatnagar Date: Fri, 13 Jul 2018 23:24:49 +0530 Subject: [PATCH] util: file: use VIR_AUTOPTR for aggregate types By making use of GNU C's cleanup attribute handled by the VIR_AUTOPTR macro for declaring aggregate pointer variables, majority of the calls to *Free functions can be dropped, which in turn leads to getting rid of most of our cleanup sections. Signed-off-by: Sukrit Bhatnagar Reviewed-by: Erik Skultety --- src/util/virfile.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/util/virfile.c b/src/util/virfile.c index 3a7445f039..6b94885a87 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -888,20 +888,19 @@ int virFileNBDDeviceAssociate(const char *file, { VIR_AUTOFREE(char *) nbddev = NULL; VIR_AUTOFREE(char *) qemunbd = NULL; - virCommandPtr cmd = NULL; - int ret = -1; + VIR_AUTOPTR(virCommand) cmd = NULL; const char *fmtstr = NULL; if (!virFileNBDLoadDriver()) - goto cleanup; + return -1; if (!(nbddev = virFileNBDDeviceFindUnused())) - goto cleanup; + return -1; if (!(qemunbd = virFindFileInPath("qemu-nbd"))) { virReportSystemError(ENOENT, "%s", _("Unable to find 'qemu-nbd' binary in $PATH")); - goto cleanup; + return -1; } if (fmt > 0) @@ -926,17 +925,14 @@ int virFileNBDDeviceAssociate(const char *file, /* qemu-nbd will daemonize itself */ if (virCommandRun(cmd, NULL) < 0) - goto cleanup; + return -1; VIR_DEBUG("Associated NBD device %s with file %s and format %s", nbddev, file, fmtstr); *dev = nbddev; nbddev = NULL; - ret = 0; - cleanup: - virCommandFree(cmd); - return ret; + return 0; } #else /* __linux__ */ -- 2.47.2