[libvirt] [PATCH v1 14/18] use VIR_AUTOFREE in src/util/virfile.c

Erik Skultety eskultet at redhat.com
Tue Jun 5 14:07:22 UTC 2018


On Sun, Jun 03, 2018 at 01:42:12PM +0530, Sukrit Bhatnagar wrote:
> Modify code to use VIR_AUTOFREE macro wherever required.
>
> Signed-off-by: Sukrit Bhatnagar <skrtbhtngr at gmail.com>
> ---
>  src/util/virfile.c | 303 +++++++++++++++++------------------------------------
>  1 file changed, 99 insertions(+), 204 deletions(-)

...

> @@ -3546,18 +3485,18 @@ virFileGetHugepageSize(const char *path,
>  static int
>  virFileGetDefaultHugepageSize(unsigned long long *size)
>  {
> -    int ret = -1;
> -    char *meminfo, *c, *n, *unit;
> +    VIR_AUTOFREE(char *) meminfo = NULL;
> +    char *c, *n, *unit;

one variable per line...

>
>      if (virFileReadAll(PROC_MEMINFO, 4096, &meminfo) < 0)
> -        goto cleanup;
> +        return -1;
>
>      if (!(c = strstr(meminfo, HUGEPAGESIZE_STR))) {
>          virReportError(VIR_ERR_NO_SUPPORT,
>                         _("%s not found in %s"),
>                         HUGEPAGESIZE_STR,
>                         PROC_MEMINFO);
> -        goto cleanup;
> +        return -1;
>      }
>      c += strlen(HUGEPAGESIZE_STR);
>
> @@ -3570,13 +3509,10 @@ virFileGetDefaultHugepageSize(unsigned long long *size)
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("Unable to parse %s %s"),
>                         HUGEPAGESIZE_STR, c);
> -        goto cleanup;
> +        return -1;
>      }
>
> -    ret = 0;
> - cleanup:
> -    VIR_FREE(meminfo);
> -    return ret;
> +    return 0;
>  }
>
>  # define PROC_MOUNTS "/proc/mounts"
> @@ -3589,7 +3525,7 @@ virFileFindHugeTLBFS(virHugeTLBFSPtr *ret_fs,
>      FILE *f = NULL;
>      struct mntent mb;
>      char mntbuf[1024];
> -    virHugeTLBFSPtr fs = NULL;
> +    VIR_AUTOFREE(virHugeTLBFSPtr) fs = NULL;

compound type (internal), needs a dedicated free helper...

>      size_t nfs = 0;
>      unsigned long long default_hugepagesz = 0;
>
> @@ -3634,7 +3570,6 @@ virFileFindHugeTLBFS(virHugeTLBFSPtr *ret_fs,
>      endmntent(f);
>      while (nfs)
>          VIR_FREE(fs[--nfs].mnt_dir);

   ...especially because of ^this...

> -    VIR_FREE(fs);
>      return ret;
>  }

Erik




More information about the libvir-list mailing list