[libvirt] [PATCH v1 03/18] use VIR_AUTOFREE in src/util/virauth.c

Erik Skultety eskultet at redhat.com
Tue Jun 5 07:34:05 UTC 2018


On Sun, Jun 03, 2018 at 01:42:01PM +0530, Sukrit Bhatnagar wrote:
> Modify code to use VIR_AUTOFREE macro wherever required.
>
> Signed-off-by: Sukrit Bhatnagar <skrtbhtngr at gmail.com>
> ---
>  src/util/virauth.c | 60 +++++++++++++++++++-----------------------------------
>  1 file changed, 21 insertions(+), 39 deletions(-)
>
> diff --git a/src/util/virauth.c b/src/util/virauth.c
> index adb093e..089a820 100644
> --- a/src/util/virauth.c
> +++ b/src/util/virauth.c
> @@ -42,10 +42,9 @@ int
>  virAuthGetConfigFilePathURI(virURIPtr uri,
>                              char **path)
>  {
> -    int ret = -1;
>      size_t i;
>      const char *authenv = virGetEnvBlockSUID("LIBVIRT_AUTH_FILE");
> -    char *userdir = NULL;
> +    VIR_AUTOFREE(char *) userdir = NULL;
>
>      *path = NULL;
>
> @@ -54,7 +53,7 @@ virAuthGetConfigFilePathURI(virURIPtr uri,
>      if (authenv) {
>          VIR_DEBUG("Using path from env '%s'", authenv);
>          if (VIR_STRDUP(*path, authenv) < 0)
> -            goto cleanup;
> +            return -1;
>          return 0;
>      }
>
> @@ -64,41 +63,38 @@ virAuthGetConfigFilePathURI(virURIPtr uri,
>                  uri->params[i].value) {
>                  VIR_DEBUG("Using path from URI '%s'", uri->params[i].value);
>                  if (VIR_STRDUP(*path, uri->params[i].value) < 0)
> -                    goto cleanup;
> +                    return -1;
>                  return 0;
>              }
>          }
>      }
>
>      if (!(userdir = virGetUserConfigDirectory()))
> -        goto cleanup;
> +        return -1;
>
>      if (virAsprintf(path, "%s/auth.conf", userdir) < 0)
> -        goto cleanup;
> +        return -1;
>
>      VIR_DEBUG("Checking for readability of '%s'", *path);
> -    if (access(*path, R_OK) == 0)
> -        goto done;
> +    if (access(*path, R_OK) == 0) {
> +        VIR_DEBUG("Using auth file '%s'", NULLSTR(*path));
> +        return 0;
> +    }

This should be left untouched (minus the @ret variable), it's actually better
not to copy the VIR_DEBUG message on multiple places. The same goes for the hunk
below...

Erik

>
>      VIR_FREE(*path);
>
>      if (VIR_STRDUP(*path, SYSCONFDIR "/libvirt/auth.conf") < 0)
> -        goto cleanup;
> +        return -1;
>
>      VIR_DEBUG("Checking for readability of '%s'", *path);
> -    if (access(*path, R_OK) == 0)
> -        goto done;
> +    if (access(*path, R_OK) == 0) {
> +        VIR_DEBUG("Using auth file '%s'", NULLSTR(*path));
> +        return 0;
> +    }
>
>      VIR_FREE(*path);
>
> - done:
> -    ret = 0;
> -
> -    VIR_DEBUG("Using auth file '%s'", NULLSTR(*path));
> - cleanup:
> -    VIR_FREE(userdir);
> -
> -    return ret;
> +    return 0;
>  }
>
>
> @@ -156,7 +152,7 @@ virAuthGetUsernamePath(const char *path,
>  {
>      unsigned int ncred;
>      virConnectCredential cred;
> -    char *prompt;
> +    VIR_AUTOFREE(char *) prompt = NULL;
>      char *ret = NULL;
>
>      if (virAuthGetCredential(servicename, hostname, "username", path, &ret) < 0)
> @@ -193,8 +189,6 @@ virAuthGetUsernamePath(const char *path,
>          break;
>      }
>
> -    VIR_FREE(prompt);
> -
>      return cred.result;
>  }
>
> @@ -206,18 +200,13 @@ virAuthGetUsername(virConnectPtr conn,
>                     const char *defaultUsername,
>                     const char *hostname)
>  {
> -    char *ret;
> -    char *path;
> +    VIR_AUTOFREE(char *) path = NULL;
>
>      if (virAuthGetConfigFilePath(conn, &path) < 0)
>          return NULL;
>
> -    ret = virAuthGetUsernamePath(path, auth, servicename,
> +    return virAuthGetUsernamePath(path, auth, servicename,
>                                   defaultUsername, hostname);
> -
> -    VIR_FREE(path);
> -
> -    return ret;
>  }
>
>
> @@ -230,7 +219,7 @@ virAuthGetPasswordPath(const char *path,
>  {
>      unsigned int ncred;
>      virConnectCredential cred;
> -    char *prompt;
> +    VIR_AUTOFREE(char *) prompt = NULL;
>      char *ret = NULL;
>
>      if (virAuthGetCredential(servicename, hostname, "password", path, &ret) < 0)
> @@ -264,8 +253,6 @@ virAuthGetPasswordPath(const char *path,
>          break;
>      }
>
> -    VIR_FREE(prompt);
> -
>      return cred.result;
>  }
>
> @@ -277,15 +264,10 @@ virAuthGetPassword(virConnectPtr conn,
>                     const char *username,
>                     const char *hostname)
>  {
> -    char *ret;
> -    char *path;
> +    VIR_AUTOFREE(char *) path = NULL;
>
>      if (virAuthGetConfigFilePath(conn, &path) < 0)
>          return NULL;
>
> -    ret = virAuthGetPasswordPath(path, auth, servicename, username, hostname);
> -
> -    VIR_FREE(path);
> -
> -    return ret;
> +    return virAuthGetPasswordPath(path, auth, servicename, username, hostname);
>  }
> --
> 1.8.3.1
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list