]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: authconfig: use VIR_AUTOFREE instead of VIR_FREE for scalar types
authorSukrit Bhatnagar <skrtbhtngr@gmail.com>
Fri, 13 Jul 2018 17:54:52 +0000 (23:24 +0530)
committerErik Skultety <eskultet@redhat.com>
Sat, 14 Jul 2018 15:01:30 +0000 (17:01 +0200)
By making use of GNU C's cleanup attribute handled by the
VIR_AUTOFREE macro for declaring scalar variables, majority
of the VIR_FREE calls can be dropped, which in turn leads to
getting rid of most of our cleanup sections.

Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/util/virauthconfig.c

index 3487cc2906ef4bfbe8c0789a60a2f97b556f9a46..4acdf1db068ddf60269e5dbd6e71d689b89662cc 100644 (file)
@@ -105,10 +105,9 @@ int virAuthConfigLookup(virAuthConfigPtr auth,
                         const char *credname,
                         const char **value)
 {
-    char *authgroup = NULL;
-    char *credgroup = NULL;
+    VIR_AUTOFREE(char *) authgroup = NULL;
+    VIR_AUTOFREE(char *) credgroup = NULL;
     const char *authcred;
-    int ret = -1;
 
     *value = NULL;
 
@@ -118,47 +117,38 @@ int virAuthConfigLookup(virAuthConfigPtr auth,
         hostname = "localhost";
 
     if (virAsprintf(&authgroup, "auth-%s-%s", service, hostname) < 0)
-        goto cleanup;
+        return -1;
 
     if (!virKeyFileHasGroup(auth->keyfile, authgroup)) {
        VIR_FREE(authgroup);
        if (virAsprintf(&authgroup, "auth-%s-%s", service, "default") < 0)
-           goto cleanup;
+            return -1;
     }
 
-    if (!virKeyFileHasGroup(auth->keyfile, authgroup)) {
-        ret = 0;
-        goto cleanup;
-    }
+    if (!virKeyFileHasGroup(auth->keyfile, authgroup))
+        return 0;
 
     if (!(authcred = virKeyFileGetValueString(auth->keyfile, authgroup, "credentials"))) {
         virReportError(VIR_ERR_CONF_SYNTAX,
                        _("Missing item 'credentials' in group '%s' in '%s'"),
                        authgroup, auth->path);
-        goto cleanup;
+        return -1;
     }
 
     if (virAsprintf(&credgroup, "credentials-%s", authcred) < 0)
-        goto cleanup;
+        return -1;
 
     if (!virKeyFileHasGroup(auth->keyfile, credgroup)) {
         virReportError(VIR_ERR_CONF_SYNTAX,
                        _("Missing group 'credentials-%s' referenced from group '%s' in '%s'"),
                        authcred, authgroup, auth->path);
-        goto cleanup;
+        return -1;
     }
 
-    if (!virKeyFileHasValue(auth->keyfile, credgroup, credname)) {
-        ret = 0;
-        goto cleanup;
-    }
+    if (!virKeyFileHasValue(auth->keyfile, credgroup, credname))
+        return 0;
 
     *value = virKeyFileGetValueString(auth->keyfile, credgroup, credname);
 
-    ret = 0;
-
- cleanup:
-    VIR_FREE(authgroup);
-    VIR_FREE(credgroup);
-    return ret;
+    return 0;
 }