Use g_autofree and remove the 'cleanup' section and 'ret' variable. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/locking/lock_driver_sanlock.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index 9c38a1d2f6..77c8d9542b 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -528,12 +528,11 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock, bool shared) { virLockManagerSanlockPrivatePtr priv = lock->privateData; - int ret = -1; - struct sanlk_resource *res = NULL; + g_autofree struct sanlk_resource *res = NULL; size_t i; if (VIR_ALLOC_VAR(res, struct sanlk_disk, 1) < 0) - goto cleanup; + return -1; res->flags = shared ? SANLK_RES_SHARED : 0; res->num_disks = 1; @@ -541,7 +540,7 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Resource name '%s' exceeds %d characters"), name, SANLK_NAME_LEN); - goto cleanup; + return -1; } for (i = 0; i < nparams; i++) { @@ -550,7 +549,7 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Lease path '%s' exceeds %d characters"), params[i].value.str, SANLK_PATH_LEN); - goto cleanup; + return -1; } } else if (STREQ(params[i].key, "offset")) { res->disks[0].offset = params[i].value.ul; @@ -559,20 +558,15 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock, virReportError(VIR_ERR_INTERNAL_ERROR, _("Resource lockspace '%s' exceeds %d characters"), params[i].value.str, SANLK_NAME_LEN); - goto cleanup; + return -1; } } } - priv->res_args[priv->res_count] = res; + priv->res_args[priv->res_count] = g_steal_pointer(&res); priv->res_count++; - ret = 0; - - cleanup: - if (ret == -1) - VIR_FREE(res); - return ret; + return 0; } -- 2.29.2