From: Sukrit Bhatnagar Date: Fri, 13 Jul 2018 17:54:49 +0000 (+0530) Subject: util: file: use VIR_AUTOPTR for aggregate types X-Git-Tag: v4.6.0-rc1~229 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbd1f5b48614454ac1ff8e1f6c99b2dd2b7c2c44;p=thirdparty%2Flibvirt.git 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 --- 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__ */