Re: [PATCH] util: convert char pointers to use g_autofree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2020-11-18 at 16:47 -0600, Ryan Gahagan wrote:
> From: Barrett Schonefeld <bschoney@xxxxxxxxxx>
> 
> additional conversions to the GLib API in src/util per issue #11.
> 
> Related issue: https://gitlab.com/libvirt/libvirt/-/issues/11
> 
> Signed-off-by: Barrett Schonefeld <bschoney@xxxxxxxxxx>
> ---
>  src/util/vircgroupv1.c           |  3 +-
>  src/util/virdnsmasq.c            | 43 ++++++++-------------
>  src/util/virfile.c               |  9 ++---
>  src/util/virhostcpu.c            |  4 +-
>  src/util/virlockspace.c          |  6 +--
>  src/util/virlog.c                | 12 ++----
>  src/util/virmacmap.c             |  3 +-
>  src/util/virnetdevbandwidth.c    | 48 ++++++++---------------
>  src/util/virresctrl.c            | 25 ++++--------
>  src/util/virrotatingfile.c       | 11 ++----
>  src/util/virscsihost.c           | 25 +++++-------
>  src/util/virsecret.c             | 14 +++----
>  src/util/virstorageencryption.c  | 19 +++------
>  src/util/virstoragefilebackend.c |  4 +-
>  src/util/virsysinfo.c            | 18 +++------
>  src/util/viruri.c                |  7 +---
>  src/util/virutil.c               | 66 +++++++++++-------------------
> --
>  src/util/virvhba.c               | 57 ++++++++++-----------------
>  src/util/virxml.c                |  7 +---
>  19 files changed, 130 insertions(+), 251 deletions(-)
> 
> diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c
> index 731e9d61d4..984cd50409 100644
> --- a/src/util/vircgroupv1.c
> +++ b/src/util/vircgroupv1.c
> @@ -1549,7 +1549,7 @@ virCgroupV1GetMemoryStat(virCgroupPtr group,
>                           unsigned long long *unevictable)
>  {
>      int ret = -1;
> -    char *stat = NULL;
> +    g_autofree char *stat = NULL;
>      char *line = NULL;
>      unsigned long long cacheVal = 0;
>      unsigned long long activeAnonVal = 0;
> @@ -1614,7 +1614,6 @@ virCgroupV1GetMemoryStat(virCgroupPtr group,
>      ret = 0;
>  
>   cleanup:
> -    VIR_FREE(stat);
>      return ret;
>  }
>  

I believe you can remove "cleanup" and "ret" as well. More instances
below.

> diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c
> index 9030f9218a..93bc4a129f 100644
> --- a/src/util/virdnsmasq.c
> +++ b/src/util/virdnsmasq.c
> @@ -164,7 +164,7 @@ addnhostsWrite(const char *path,
>                 dnsmasqAddnHost *hosts,
>                 unsigned int nhosts)
>  {
> -    char *tmp;
> +    g_autofree char *tmp = NULL;
>      FILE *f;
>      bool istmp = true;
>      size_t i, j;
> @@ -180,7 +180,7 @@ addnhostsWrite(const char *path,
>          istmp = false;
>          if (!(f = fopen(path, "w"))) {
>              rc = -errno;
> -            goto cleanup;
> +            return rc;

Why not "return -errno;"? More instances below.

You also might want to split the patch up, e.g. go function by
function, to create self-contained changes.

Cheers,
Tim

>          }
>      }
>  
> @@ -192,7 +192,7 @@ addnhostsWrite(const char *path,
>              if (istmp)
>                  unlink(tmp);
>  
> -            goto cleanup;
> +            return rc;
>          }
>  
>          for (j = 0; j < hosts[i].nhostnames; j++) {
> @@ -203,7 +203,7 @@ addnhostsWrite(const char *path,
>                  if (istmp)
>                      unlink(tmp);
>  
> -                goto cleanup;
> +                return rc;
>              }
>          }
>  
> @@ -214,24 +214,21 @@ addnhostsWrite(const char *path,
>              if (istmp)
>                  unlink(tmp);
>  
> -            goto cleanup;
> +            return rc;
>          }
>      }
>  
>      if (VIR_FCLOSE(f) == EOF) {
>          rc = -errno;
> -        goto cleanup;
> +        return rc;
>      }
>  
>      if (istmp && rename(tmp, path) < 0) {
>          rc = -errno;
>          unlink(tmp);
> -        goto cleanup;
> +        return rc;
>      }
>  
> - cleanup:
> -    VIR_FREE(tmp);
> -
>      return rc;
>  }
>  
> @@ -364,7 +361,7 @@ hostsfileWrite(const char *path,
>                 dnsmasqDhcpHost *hosts,
>                 unsigned int nhosts)
>  {
> -    char *tmp;
> +    g_autofree char *tmp = NULL;
>      FILE *f;
>      bool istmp = true;
>      size_t i;
> @@ -380,7 +377,7 @@ hostsfileWrite(const char *path,
>          istmp = false;
>          if (!(f = fopen(path, "w"))) {
>              rc = -errno;
> -            goto cleanup;
> +            return rc;
>          }
>      }
>  
> @@ -392,24 +389,21 @@ hostsfileWrite(const char *path,
>              if (istmp)
>                  unlink(tmp);
>  
> -            goto cleanup;
> +            return rc;
>          }
>      }
>  
>      if (VIR_FCLOSE(f) == EOF) {
>          rc = -errno;
> -        goto cleanup;
> +        return rc;
>      }
>  
>      if (istmp && rename(tmp, path) < 0) {
>          rc = -errno;
>          unlink(tmp);
> -        goto cleanup;
> +        return rc;
>      }
>  
> - cleanup:
> -    VIR_FREE(tmp);
> -
>      return rc;
>  }
>  
> @@ -686,15 +680,13 @@ static int
>  dnsmasqCapsSetFromFile(dnsmasqCapsPtr caps, const char *path)
>  {
>      int ret = -1;
> -    char *buf = NULL;
> +    g_autofree char *buf = NULL;
>  
>      if (virFileReadAll(path, 1024 * 1024, &buf) < 0)
> -        goto cleanup;
> +        return ret;
>  
>      ret = dnsmasqCapsSetFromBuffer(caps, buf);
>  
> - cleanup:
> -    VIR_FREE(buf);
>      return ret;
>  }
>  
> @@ -704,7 +696,9 @@ dnsmasqCapsRefreshInternal(dnsmasqCapsPtr caps,
> bool force)
>      int ret = -1;
>      struct stat sb;
>      virCommandPtr cmd = NULL;
> -    char *help = NULL, *version = NULL, *complete = NULL;
> +    g_autofree char *help = NULL;
> +    g_autofree char *version = NULL;
> +    g_autofree char *complete = NULL;
>  
>      if (!caps || caps->noRefresh)
>          return 0;
> @@ -749,9 +743,6 @@ dnsmasqCapsRefreshInternal(dnsmasqCapsPtr caps,
> bool force)
>  
>   cleanup:
>      virCommandFree(cmd);
> -    VIR_FREE(help);
> -    VIR_FREE(version);
> -    VIR_FREE(complete);
>      return ret;
>  }
>  
> diff --git a/src/util/virfile.c b/src/util/virfile.c
> index f57272ca2f..38207f1948 100644
> --- a/src/util/virfile.c
> +++ b/src/util/virfile.c
> @@ -3328,9 +3328,9 @@ virFileIsSharedFixFUSE(const char *path,
>      FILE *f = NULL;
>      struct mntent mb;
>      char mntbuf[1024];
> -    char *mntDir = NULL;
> -    char *mntType = NULL;
> -    char *canonPath = NULL;
> +    g_autofree char *mntDir = NULL;
> +    g_autofree char *mntType = NULL;
> +    g_autofree char *canonPath = NULL;
>      size_t maxMatching = 0;
>      int ret = -1;
>  
> @@ -3381,9 +3381,6 @@ virFileIsSharedFixFUSE(const char *path,
>  
>      ret = 0;
>   cleanup:
> -    VIR_FREE(canonPath);
> -    VIR_FREE(mntType);
> -    VIR_FREE(mntDir);
>      endmntent(f);
>      return ret;
>  }
> diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
> index c531d65f86..4f6c3390ce 100644
> --- a/src/util/virhostcpu.c
> +++ b/src/util/virhostcpu.c
> @@ -87,7 +87,7 @@ virHostCPUGetStatsFreeBSD(int cpuNum,
>                            int *nparams)
>  {
>      const char *sysctl_name;
> -    long *cpu_times;
> +    g_autofree long *cpu_times = NULL;
>      struct clockinfo clkinfo;
>      size_t i, j, cpu_times_size, clkinfo_size;
>      int cpu_times_num, offset, hz, stathz, ret = -1;
> @@ -172,8 +172,6 @@ virHostCPUGetStatsFreeBSD(int cpuNum,
>      ret = 0;
>  
>   cleanup:
> -    VIR_FREE(cpu_times);
> -
>      return ret;
>  }
>  
> diff --git a/src/util/virlockspace.c b/src/util/virlockspace.c
> index b90e13f506..71d5dfb83e 100644
> --- a/src/util/virlockspace.c
> +++ b/src/util/virlockspace.c
> @@ -515,7 +515,7 @@ int virLockSpaceCreateResource(virLockSpacePtr
> lockspace,
>                                 const char *resname)
>  {
>      int ret = -1;
> -    char *respath = NULL;
> +    g_autofree char *respath = NULL;
>  
>      VIR_DEBUG("lockspace=%p resname=%s", lockspace, resname);
>  
> @@ -538,7 +538,6 @@ int virLockSpaceCreateResource(virLockSpacePtr
> lockspace,
>  
>   cleanup:
>      virMutexUnlock(&lockspace->lock);
> -    VIR_FREE(respath);
>      return ret;
>  }
>  
> @@ -547,7 +546,7 @@ int virLockSpaceDeleteResource(virLockSpacePtr
> lockspace,
>                                 const char *resname)
>  {
>      int ret = -1;
> -    char *respath = NULL;
> +    g_autofree char *respath = NULL;
>  
>      VIR_DEBUG("lockspace=%p resname=%s", lockspace, resname);
>  
> @@ -575,7 +574,6 @@ int virLockSpaceDeleteResource(virLockSpacePtr
> lockspace,
>  
>   cleanup:
>      virMutexUnlock(&lockspace->lock);
> -    VIR_FREE(respath);
>      return ret;
>  }
>  
> diff --git a/src/util/virlog.c b/src/util/virlog.c
> index 6b7a4512e9..2bf606b8c5 100644
> --- a/src/util/virlog.c
> +++ b/src/util/virlog.c
> @@ -505,8 +505,8 @@ virLogVMessage(virLogSourcePtr source,
>                 va_list vargs)
>  {
>      static bool logInitMessageStderr = true;
> -    char *str = NULL;
> -    char *msg = NULL;
> +    g_autofree char *str = NULL;
> +    g_autofree char *msg = NULL;
>      char timestamp[VIR_TIME_STRING_BUFLEN];
>      size_t i;
>      int saved_errno = errno;
> @@ -528,7 +528,8 @@ virLogVMessage(virLogSourcePtr source,
>      if (source->serial < virLogFiltersSerial)
>          virLogSourceUpdate(source);
>      if (priority < source->priority)
> -        goto cleanup;
> +        errno = saved_errno;
> +        return;
>  
>      /*
>       * serialize the error message, add level and timestamp
> @@ -601,11 +602,6 @@ virLogVMessage(virLogSourcePtr source,
>                           str, msg, (void *) STDERR_FILENO);
>      }
>      virLogUnlock();
> -
> - cleanup:
> -    VIR_FREE(str);
> -    VIR_FREE(msg);
> -    errno = saved_errno;
>  }
>  
>  
> diff --git a/src/util/virmacmap.c b/src/util/virmacmap.c
> index f9047d0fb1..e68742de10 100644
> --- a/src/util/virmacmap.c
> +++ b/src/util/virmacmap.c
> @@ -129,7 +129,7 @@ static int
>  virMacMapLoadFile(virMacMapPtr mgr,
>                    const char *file)
>  {
> -    char *map_str = NULL;
> +    g_autofree char *map_str = NULL;
>      virJSONValuePtr map = NULL;
>      int map_str_len = 0;
>      size_t i;
> @@ -189,7 +189,6 @@ virMacMapLoadFile(virMacMapPtr mgr,
>  
>      ret = 0;
>   cleanup:
> -    VIR_FREE(map_str);
>      virJSONValueFree(map);
>      return ret;
>  }
> diff --git a/src/util/virnetdevbandwidth.c
> b/src/util/virnetdevbandwidth.c
> index c8eb5cfc79..2ae03e8edc 100644
> --- a/src/util/virnetdevbandwidth.c
> +++ b/src/util/virnetdevbandwidth.c
> @@ -102,7 +102,7 @@ virNetDevBandwidthManipulateFilter(const char
> *ifname,
>                                     bool create_new)
>  {
>      int ret = -1;
> -    char *filter_id = NULL;
> +    g_autofree char *filter_id = NULL;
>      virCommandPtr cmd = NULL;
>      unsigned char ifmac[VIR_MAC_BUFLEN];
>      char *mac[2] = {NULL, NULL};
> @@ -157,7 +157,6 @@ virNetDevBandwidthManipulateFilter(const char
> *ifname,
>   cleanup:
>      VIR_FREE(mac[1]);
>      VIR_FREE(mac[0]);
> -    VIR_FREE(filter_id);
>      virCommandFree(cmd);
>      return ret;
>  }
> @@ -195,9 +194,9 @@ virNetDevBandwidthSet(const char *ifname,
>      int ret = -1;
>      virNetDevBandwidthRatePtr rx = NULL, tx = NULL; /* From domain
> POV */
>      virCommandPtr cmd = NULL;
> -    char *average = NULL;
> -    char *peak = NULL;
> -    char *burst = NULL;
> +    g_autofree char *average = NULL;
> +    g_autofree char *peak = NULL;
> +    g_autofree char *burst = NULL;
>  
>      if (!bandwidth) {
>          /* nothing to be enabled */
> @@ -385,9 +384,6 @@ virNetDevBandwidthSet(const char *ifname,
>  
>   cleanup:
>      virCommandFree(cmd);
> -    VIR_FREE(average);
> -    VIR_FREE(peak);
> -    VIR_FREE(burst);
>      return ret;
>  }
>  
> @@ -533,10 +529,10 @@ virNetDevBandwidthPlug(const char *brname,
>  {
>      int ret = -1;
>      virCommandPtr cmd = NULL;
> -    char *class_id = NULL;
> -    char *qdisc_id = NULL;
> -    char *floor = NULL;
> -    char *ceil = NULL;
> +    g_autofree char *class_id = NULL;
> +    g_autofree char *qdisc_id = NULL;
> +    g_autofree char *floor = NULL;
> +    g_autofree char *ceil = NULL;
>      char ifmacStr[VIR_MAC_STRING_BUFLEN];
>  
>      if (id <= 2) {
> @@ -586,10 +582,6 @@ virNetDevBandwidthPlug(const char *brname,
>      ret = 0;
>  
>   cleanup:
> -    VIR_FREE(ceil);
> -    VIR_FREE(floor);
> -    VIR_FREE(qdisc_id);
> -    VIR_FREE(class_id);
>      virCommandFree(cmd);
>      return ret;
>  }
> @@ -610,8 +602,8 @@ virNetDevBandwidthUnplug(const char *brname,
>      int ret = -1;
>      int cmd_ret = 0;
>      virCommandPtr cmd = NULL;
> -    char *class_id = NULL;
> -    char *qdisc_id = NULL;
> +    g_autofree char *class_id = NULL;
> +    g_autofree char *qdisc_id = NULL;
>  
>      if (id <= 2) {
>          virReportError(VIR_ERR_INTERNAL_ERROR, _("Invalid class ID
> %d"), id);
> @@ -645,8 +637,6 @@ virNetDevBandwidthUnplug(const char *brname,
>      ret = 0;
>  
>   cleanup:
> -    VIR_FREE(qdisc_id);
> -    VIR_FREE(class_id);
>      virCommandFree(cmd);
>      return ret;
>  }
> @@ -673,9 +663,9 @@ virNetDevBandwidthUpdateRate(const char *ifname,
>  {
>      int ret = -1;
>      virCommandPtr cmd = NULL;
> -    char *class_id = NULL;
> -    char *rate = NULL;
> -    char *ceil = NULL;
> +    g_autofree char *class_id = NULL;
> +    g_autofree char *rate = NULL;
> +    g_autofree char *ceil = NULL;
>  
>      class_id = g_strdup_printf("1:%x", id);
>      rate = g_strdup_printf("%llukbps", new_rate);
> @@ -696,9 +686,6 @@ virNetDevBandwidthUpdateRate(const char *ifname,
>  
>   cleanup:
>      virCommandFree(cmd);
> -    VIR_FREE(class_id);
> -    VIR_FREE(rate);
> -    VIR_FREE(ceil);
>      return ret;
>  }
>  
> @@ -725,16 +712,13 @@ virNetDevBandwidthUpdateFilter(const char
> *ifname,
>                                 unsigned int id)
>  {
>      int ret = -1;
> -    char *class_id = NULL;
> +    g_autofree char *class_id = NULL;
>  
>      class_id = g_strdup_printf("1:%x", id);
>  
>      if (virNetDevBandwidthManipulateFilter(ifname, ifmac_ptr, id,
>                                             class_id, true, true) <
> 0)
> -        goto cleanup;
> +        return ret;
>  
> -    ret = 0;
> - cleanup:
> -    VIR_FREE(class_id);
> -    return ret;
> +    return 0;
>  }
> diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
> index d3087b98c1..1c2d175295 100644
> --- a/src/util/virresctrl.c
> +++ b/src/util/virresctrl.c
> @@ -709,7 +709,7 @@ virResctrlGetMonitorInfo(virResctrlInfoPtr
> resctrl)
>  {
>      int ret = -1;
>      int rv = -1;
> -    char *featurestr = NULL;
> +    g_autofree char *featurestr = NULL;
>      char **features = NULL;
>      size_t nfeatures = 0;
>      virResctrlInfoMongrpPtr info_monitor = NULL;
> @@ -771,7 +771,6 @@ virResctrlGetMonitorInfo(virResctrlInfoPtr
> resctrl)
>  
>      ret = 0;
>   cleanup:
> -    VIR_FREE(featurestr);
>      g_strfreev(features);
>      VIR_FREE(info_monitor);
>      return ret;
> @@ -1736,7 +1735,7 @@ virResctrlAllocGetGroup(virResctrlInfoPtr
> resctrl,
>                          const char *groupname,
>                          virResctrlAllocPtr *alloc)
>  {
> -    char *schemata = NULL;
> +    g_autofree char *schemata = NULL;
>      int rv = virFileReadValueString(&schemata,
>                                      SYSFS_RESCTRL_PATH
> "/%s/schemata",
>                                      groupname);
> @@ -1753,11 +1752,9 @@ virResctrlAllocGetGroup(virResctrlInfoPtr
> resctrl,
>      if (virResctrlAllocParse(resctrl, *alloc, schemata) < 0)
>          goto error;
>  
> -    VIR_FREE(schemata);
>      return 0;
>  
>   error:
> -    VIR_FREE(schemata);
>      virObjectUnref(*alloc);
>      *alloc = NULL;
>      return -1;
> @@ -2354,8 +2351,8 @@ virResctrlAllocCreate(virResctrlInfoPtr
> resctrl,
>                        virResctrlAllocPtr alloc,
>                        const char *machinename)
>  {
> -    char *schemata_path = NULL;
> -    char *alloc_str = NULL;
> +    g_autofree char *schemata_path = NULL;
> +    g_autofree char *alloc_str = NULL;
>      int ret = -1;
>      int lockfd = -1;
>  
> @@ -2403,8 +2400,6 @@ virResctrlAllocCreate(virResctrlInfoPtr
> resctrl,
>      ret = 0;
>   cleanup:
>      virResctrlUnlock(lockfd);
> -    VIR_FREE(alloc_str);
> -    VIR_FREE(schemata_path);
>      return ret;
>  }
>  
> @@ -2413,8 +2408,8 @@ static int
>  virResctrlAddPID(const char *path,
>                   pid_t pid)
>  {
> -    char *tasks = NULL;
> -    char *pidstr = NULL;
> +    g_autofree char *tasks = NULL;
> +    g_autofree char *pidstr = NULL;
>      int ret = 0;
>  
>      if (!path) {
> @@ -2436,8 +2431,6 @@ virResctrlAddPID(const char *path,
>  
>      ret = 0;
>   cleanup:
> -    VIR_FREE(tasks);
> -    VIR_FREE(pidstr);
>      return ret;
>  }
>  
> @@ -2657,8 +2650,8 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr
> monitor,
>      size_t i = 0;
>      unsigned long long val = 0;
>      g_autoptr(DIR) dirp = NULL;
> -    char *datapath = NULL;
> -    char *filepath = NULL;
> +    g_autofree char *datapath = NULL;
> +    g_autofree char *filepath = NULL;
>      struct dirent *ent = NULL;
>      virResctrlMonitorStatsPtr stat = NULL;
>  
> @@ -2737,8 +2730,6 @@ virResctrlMonitorGetStats(virResctrlMonitorPtr
> monitor,
>  
>      ret = 0;
>   cleanup:
> -    VIR_FREE(datapath);
> -    VIR_FREE(filepath);
>      virResctrlMonitorStatsFree(stat);
>      return ret;
>  }
> diff --git a/src/util/virrotatingfile.c b/src/util/virrotatingfile.c
> index 9f1ef17c3e..6fe5fa3154 100644
> --- a/src/util/virrotatingfile.c
> +++ b/src/util/virrotatingfile.c
> @@ -362,8 +362,8 @@ static int
>  virRotatingFileWriterRollover(virRotatingFileWriterPtr file)
>  {
>      size_t i;
> -    char *nextpath = NULL;
> -    char *thispath = NULL;
> +    g_autofree char *nextpath = NULL;
> +    g_autofree char *thispath = NULL;
>      int ret = -1;
>  
>      VIR_DEBUG("Rollover %s", file->basepath);
> @@ -373,7 +373,7 @@
> virRotatingFileWriterRollover(virRotatingFileWriterPtr file)
>              virReportSystemError(errno,
>                                   _("Unable to remove %s"),
>                                   file->basepath);
> -            goto cleanup;
> +            return ret;
>          }
>      } else {
>          nextpath = g_strdup_printf("%s.%zu", file->basepath, file-
> >maxbackup - 1);
> @@ -391,7 +391,7 @@
> virRotatingFileWriterRollover(virRotatingFileWriterPtr file)
>                  virReportSystemError(errno,
>                                       _("Unable to rename %s to %s"),
>                                       thispath, nextpath);
> -                goto cleanup;
> +                return ret;
>              }
>  
>              VIR_FREE(nextpath);
> @@ -402,9 +402,6 @@
> virRotatingFileWriterRollover(virRotatingFileWriterPtr file)
>      VIR_DEBUG("Rollover done %s", file->basepath);
>  
>      ret = 0;
> - cleanup:
> -    VIR_FREE(nextpath);
> -    VIR_FREE(thispath);
>      return ret;
>  }
>  
> diff --git a/src/util/virscsihost.c b/src/util/virscsihost.c
> index 969cdd9f79..cad48b4059 100644
> --- a/src/util/virscsihost.c
> +++ b/src/util/virscsihost.c
> @@ -95,12 +95,12 @@ virSCSIHostFindByPCI(const char *sysfs_prefix,
>      const char *prefix = sysfs_prefix ? sysfs_prefix :
> SYSFS_SCSI_HOST_PATH;
>      struct dirent *entry = NULL;
>      g_autoptr(DIR) dir = NULL;
> -    char *host_link = NULL;
> -    char *host_path = NULL;
> +    g_autofree char *host_link = NULL;
> +    g_autofree char *host_path = NULL;
>      char *p = NULL;
>      char *ret = NULL;
> -    char *buf = NULL;
> -    char *unique_path = NULL;
> +    g_autofree char *buf = NULL;
> +    g_autofree char *unique_path = NULL;
>      unsigned int read_unique_id;
>  
>      if (virDirOpen(&dir, prefix) < 0)
> @@ -113,7 +113,7 @@ virSCSIHostFindByPCI(const char *sysfs_prefix,
>          host_link = g_strdup_printf("%s/%s", prefix, entry->d_name);
>  
>          if (virFileResolveLink(host_link, &host_path) < 0)
> -            goto cleanup;
> +            return ret;
>  
>          if (!strstr(host_path, parentaddr)) {
>              VIR_FREE(host_link);
> @@ -131,13 +131,13 @@ virSCSIHostFindByPCI(const char *sysfs_prefix,
>          }
>  
>          if (virFileReadAll(unique_path, 1024, &buf) < 0)
> -            goto cleanup;
> +            return ret;
>  
>          if ((p = strchr(buf, '\n')))
>              *p = '\0';
>  
>          if (virStrToLong_ui(buf, NULL, 10, &read_unique_id) < 0)
> -            goto cleanup;
> +            return ret;
>  
>          VIR_FREE(buf);
>  
> @@ -150,11 +150,6 @@ virSCSIHostFindByPCI(const char *sysfs_prefix,
>          break;
>      }
>  
> - cleanup:
> -    VIR_FREE(unique_path);
> -    VIR_FREE(host_link);
> -    VIR_FREE(host_path);
> -    VIR_FREE(buf);
>      return ret;
>  }
>  
> @@ -226,7 +221,7 @@ virSCSIHostGetNameByParentaddr(unsigned int
> domain,
>                                 unsigned int unique_id)
>  {
>      char *name = NULL;
> -    char *parentaddr = NULL;
> +    g_autofree char *parentaddr = NULL;
>  
>      parentaddr = g_strdup_printf("%04x:%02x:%02x.%01x", domain, bus,
> slot,
>                                   function);
> @@ -235,11 +230,9 @@ virSCSIHostGetNameByParentaddr(unsigned int
> domain,
>                         _("Failed to find scsi_host using PCI '%s' "
>                           "and unique_id='%u'"),
>                         parentaddr, unique_id);
> -        goto cleanup;
> +        return name;
>      }
>  
> - cleanup:
> -    VIR_FREE(parentaddr);
>      return name;
>  }
>  
> diff --git a/src/util/virsecret.c b/src/util/virsecret.c
> index 54d6bbcb7c..67c9b68215 100644
> --- a/src/util/virsecret.c
> +++ b/src/util/virsecret.c
> @@ -65,8 +65,8 @@ int
>  virSecretLookupParseSecret(xmlNodePtr secretnode,
>                             virSecretLookupTypeDefPtr def)
>  {
> -    char *uuid;
> -    char *usage;
> +    g_autofree char *uuid = NULL;
> +    g_autofree char *usage = NULL;
>      int ret = -1;
>  
>      uuid = virXMLPropString(secretnode, "uuid");
> @@ -74,20 +74,20 @@ virSecretLookupParseSecret(xmlNodePtr secretnode,
>      if (uuid == NULL && usage == NULL) {
>          virReportError(VIR_ERR_XML_ERROR, "%s",
>                         _("missing secret uuid or usage attribute"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (uuid && usage) {
>          virReportError(VIR_ERR_XML_ERROR, "%s",
>                         _("either secret uuid or usage expected"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (uuid) {
>          if (virUUIDParse(uuid, def->u.uuid) < 0) {
>              virReportError(VIR_ERR_XML_ERROR,
>                             _("invalid secret uuid '%s'"), uuid);
> -            goto cleanup;
> +            return ret;
>          }
>          def->type = VIR_SECRET_LOOKUP_TYPE_UUID;
>      } else {
> @@ -96,10 +96,6 @@ virSecretLookupParseSecret(xmlNodePtr secretnode,
>          def->type = VIR_SECRET_LOOKUP_TYPE_USAGE;
>      }
>      ret = 0;
> -
> - cleanup:
> -    VIR_FREE(uuid);
> -    VIR_FREE(usage);
>      return ret;
>  }
>  
> diff --git a/src/util/virstorageencryption.c
> b/src/util/virstorageencryption.c
> index 399c6926bd..db886c1e76 100644
> --- a/src/util/virstorageencryption.c
> +++ b/src/util/virstorageencryption.c
> @@ -142,7 +142,7 @@
> virStorageEncryptionSecretParse(xmlXPathContextPtr ctxt,
>  {
>      VIR_XPATH_NODE_AUTORESTORE(ctxt)
>      virStorageEncryptionSecretPtr ret;
> -    char *type_str = NULL;
> +    g_autofree char *type_str = NULL;
>  
>      ret = g_new0(virStorageEncryptionSecret, 1);
>  
> @@ -164,12 +164,9 @@
> virStorageEncryptionSecretParse(xmlXPathContextPtr ctxt,
>      if (virSecretLookupParseSecret(node, &ret->seclookupdef) < 0)
>          goto cleanup;
>  
> -    VIR_FREE(type_str);
> -
>      return ret;
>  
>   cleanup:
> -    VIR_FREE(type_str);
>      virStorageEncryptionSecretFree(ret);
>      return NULL;
>  }
> @@ -180,12 +177,12 @@ virStorageEncryptionInfoParseCipher(xmlNodePtr
> info_node,
>                                      virStorageEncryptionInfoDefPtr
> info)
>  {
>      int ret = -1;
> -    char *size_str = NULL;
> +    g_autofree char *size_str = NULL;
>  
>      if (!(info->cipher_name = virXMLPropString(info_node, "name")))
> {
>          virReportError(VIR_ERR_XML_ERROR, "%s",
>                         _("cipher info missing 'name' attribute"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if ((size_str = virXMLPropString(info_node, "size")) &&
> @@ -193,22 +190,19 @@ virStorageEncryptionInfoParseCipher(xmlNodePtr
> info_node,
>          virReportError(VIR_ERR_XML_ERROR,
>                         _("cannot parse cipher size: '%s'"),
>                         size_str);
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (!size_str) {
>          virReportError(VIR_ERR_XML_ERROR, "%s",
>                         _("cipher info missing 'size' attribute"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      info->cipher_mode = virXMLPropString(info_node, "mode");
>      info->cipher_hash = virXMLPropString(info_node, "hash");
>  
>      ret = 0;
> -
> - cleanup:
> -    VIR_FREE(size_str);
>      return ret;
>  }
>  
> @@ -237,7 +231,7 @@ virStorageEncryptionParseNode(xmlNodePtr node,
>      xmlNodePtr *nodes = NULL;
>      virStorageEncryptionPtr encdef = NULL;
>      virStorageEncryptionPtr ret = NULL;
> -    char *format_str = NULL;
> +    g_autofree char *format_str = NULL;
>      int n;
>      size_t i;
>  
> @@ -297,7 +291,6 @@ virStorageEncryptionParseNode(xmlNodePtr node,
>      ret = g_steal_pointer(&encdef);
>  
>   cleanup:
> -    VIR_FREE(format_str);
>      VIR_FREE(nodes);
>      virStorageEncryptionFree(encdef);
>  
> diff --git a/src/util/virstoragefilebackend.c
> b/src/util/virstoragefilebackend.c
> index 2779b5c307..55c62b0212 100644
> --- a/src/util/virstoragefilebackend.c
> +++ b/src/util/virstoragefilebackend.c
> @@ -51,7 +51,7 @@ virStorageFileLoadBackendModule(const char *name,
>                                  const char *regfunc,
>                                  bool forceload)
>  {
> -    char *modfile = NULL;
> +    g_autofree char *modfile = NULL;
>      int ret;
>  
>      if (!(modfile = virFileFindResourceFull(name,
> @@ -64,8 +64,6 @@ virStorageFileLoadBackendModule(const char *name,
>  
>      ret = virModuleLoad(modfile, regfunc, forceload);
>  
> -    VIR_FREE(modfile);
> -
>      return ret;
>  }
>  #endif /* WITH_STORAGE_DIR || WITH_STORAGE_FS ||
> WITH_STORAGE_GLUSTER */
> diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c
> index 217f842a37..45a950c85a 100644
> --- a/src/util/virsysinfo.c
> +++ b/src/util/virsysinfo.c
> @@ -393,7 +393,7 @@ virSysinfoParseARMProcessor(const char *base,
> virSysinfoDefPtr ret)
>      const char *cur;
>      char *eol, *tmp_base;
>      virSysinfoProcessorDefPtr processor;
> -    char *processor_type = NULL;
> +    g_autofree char *processor_type = NULL;
>  
>      if (!(tmp_base = strstr(base, "model name")) &&
>          !(tmp_base = strstr(base, "Processor")))
> @@ -411,7 +411,7 @@ virSysinfoParseARMProcessor(const char *base,
> virSysinfoDefPtr ret)
>          cur = strchr(base, ':') + 1;
>  
>          if (VIR_EXPAND_N(ret->processor, ret->nprocessor, 1) < 0)
> -            goto error;
> +            return -1;
>          processor = &ret->processor[ret->nprocessor - 1];
>  
>          virSkipSpaces(&cur);
> @@ -424,12 +424,7 @@ virSysinfoParseARMProcessor(const char *base,
> virSysinfoDefPtr ret)
>          base = cur;
>      }
>  
> -    VIR_FREE(processor_type);
>      return 0;
> -
> - error:
> -    VIR_FREE(processor_type);
> -    return -1;
>  }
>  
>  /* virSysinfoRead for ARMv7
> @@ -532,9 +527,9 @@ static int
>  virSysinfoParseS390Processor(const char *base, virSysinfoDefPtr ret)
>  {
>      const char *tmp_base;
> -    char *manufacturer = NULL;
> -    char *procline = NULL;
> -    char *ncpu = NULL;
> +    g_autofree char *manufacturer = NULL;
> +    g_autofree char *procline = NULL;
> +    g_autofree char *ncpu = NULL;
>      int result = -1;
>      virSysinfoProcessorDefPtr processor;
>  
> @@ -593,9 +588,6 @@ virSysinfoParseS390Processor(const char *base,
> virSysinfoDefPtr ret)
>      result = 0;
>  
>   error:
> -    VIR_FREE(manufacturer);
> -    VIR_FREE(procline);
> -    VIR_FREE(ncpu);
>      return result;
>  }
>  
> diff --git a/src/util/viruri.c b/src/util/viruri.c
> index 11753a0aef..d49821451e 100644
> --- a/src/util/viruri.c
> +++ b/src/util/viruri.c
> @@ -209,7 +209,7 @@ char *
>  virURIFormat(virURIPtr uri)
>  {
>      xmlURI xmluri;
> -    char *tmpserver = NULL;
> +    g_autofree char *tmpserver = NULL;
>      char *ret;
>  
>      memset(&xmluri, 0, sizeof(xmluri));
> @@ -241,12 +241,9 @@ virURIFormat(virURIPtr uri)
>      ret = (char *)xmlSaveUri(&xmluri);
>      if (!ret) {
>          virReportOOMError();
> -        goto cleanup;
> +        return ret;
>      }
>  
> - cleanup:
> -    VIR_FREE(tmpserver);
> -
>      return ret;
>  }
>  
> diff --git a/src/util/virutil.c b/src/util/virutil.c
> index a0cd0f1bcd..a7c163ab94 100644
> --- a/src/util/virutil.c
> +++ b/src/util/virutil.c
> @@ -598,7 +598,7 @@ char *virGetUserRuntimeDirectory(void)
>  static int
>  virGetUserEnt(uid_t uid, char **name, gid_t *group, char **dir, char
> **shell, bool quiet)
>  {
> -    char *strbuf;
> +    g_autofree char *strbuf = NULL;
>      struct passwd pwbuf;
>      struct passwd *pw = NULL;
>      long val = sysconf(_SC_GETPW_R_SIZE_MAX);
> @@ -668,13 +668,12 @@ virGetUserEnt(uid_t uid, char **name, gid_t
> *group, char **dir, char **shell, bo
>          if (shell)
>              VIR_FREE(*shell);
>      }
> -    VIR_FREE(strbuf);
>      return ret;
>  }
>  
>  static char *virGetGroupEnt(gid_t gid)
>  {
> -    char *strbuf;
> +    g_autofree char *strbuf = NULL;
>      char *ret;
>      struct group grbuf;
>      struct group *gr = NULL;
> @@ -717,7 +716,6 @@ static char *virGetGroupEnt(gid_t gid)
>      }
>  
>      ret = g_strdup(gr->gr_name);
> -    VIR_FREE(strbuf);
>      return ret;
>  }
>  
> @@ -759,7 +757,7 @@ char *virGetGroupName(gid_t gid)
>  static int
>  virGetUserIDByName(const char *name, uid_t *uid, bool missing_ok)
>  {
> -    char *strbuf = NULL;
> +    g_autofree char *strbuf = NULL;
>      struct passwd pwbuf;
>      struct passwd *pw = NULL;
>      long val = sysconf(_SC_GETPW_R_SIZE_MAX);
> @@ -775,7 +773,7 @@ virGetUserIDByName(const char *name, uid_t *uid,
> bool missing_ok)
>  
>      while ((rc = getpwnam_r(name, &pwbuf, strbuf, strbuflen, &pw))
> == ERANGE) {
>          if (VIR_RESIZE_N(strbuf, strbuflen, strbuflen, strbuflen) <
> 0)
> -            goto cleanup;
> +            return ret;
>      }
>  
>      if (!pw) {
> @@ -788,16 +786,13 @@ virGetUserIDByName(const char *name, uid_t
> *uid, bool missing_ok)
>          }
>  
>          ret = 1;
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (uid)
>          *uid = pw->pw_uid;
>      ret = 0;
>  
> - cleanup:
> -    VIR_FREE(strbuf);
> -
>      return ret;
>  }
>  
> @@ -840,7 +835,7 @@ virGetUserID(const char *user, uid_t *uid)
>  static int
>  virGetGroupIDByName(const char *name, gid_t *gid, bool missing_ok)
>  {
> -    char *strbuf = NULL;
> +    g_autofree char *strbuf = NULL;
>      struct group grbuf;
>      struct group *gr = NULL;
>      long val = sysconf(_SC_GETGR_R_SIZE_MAX);
> @@ -856,7 +851,7 @@ virGetGroupIDByName(const char *name, gid_t *gid,
> bool missing_ok)
>  
>      while ((rc = getgrnam_r(name, &grbuf, strbuf, strbuflen, &gr))
> == ERANGE) {
>          if (VIR_RESIZE_N(strbuf, strbuflen, strbuflen, strbuflen) <
> 0)
> -            goto cleanup;
> +            return ret;
>      }
>  
>      if (!gr) {
> @@ -869,16 +864,13 @@ virGetGroupIDByName(const char *name, gid_t
> *gid, bool missing_ok)
>          }
>  
>          ret = 1;
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (gid)
>          *gid = gr->gr_gid;
>      ret = 0;
>  
> - cleanup:
> -    VIR_FREE(strbuf);
> -
>      return ret;
>  }
>  
> @@ -949,7 +941,7 @@ int
>  virGetGroupList(uid_t uid, gid_t gid, gid_t **list)
>  {
>      int ret = 0;
> -    char *user = NULL;
> +    g_autofree char *user = NULL;
>      gid_t primary;
>  
>      *list = NULL;
> @@ -987,19 +979,17 @@ virGetGroupList(uid_t uid, gid_t gid, gid_t
> **list)
>  
>          for (i = 0; i < ret; i++) {
>              if ((*list)[i] == gid)
> -                goto cleanup;
> +                return ret;
>          }
>          if (VIR_APPEND_ELEMENT(*list, i, gid) < 0) {
>              ret = -1;
>              VIR_FREE(*list);
> -            goto cleanup;
> +            return ret;
>          } else {
>              ret = i;
>          }
>      }
>  
> - cleanup:
> -    VIR_FREE(user);
>      return ret;
>  }
>  
> @@ -1405,8 +1395,8 @@ virSetDeviceUnprivSGIO(const char *path,
>                         const char *sysfs_dir,
>                         int unpriv_sgio)
>  {
> -    char *sysfs_path = NULL;
> -    char *val = NULL;
> +    g_autofree char *sysfs_path = NULL;
> +    g_autofree char *val = NULL;
>      int ret = -1;
>      int rc;
>  
> @@ -1416,20 +1406,17 @@ virSetDeviceUnprivSGIO(const char *path,
>      if (!virFileExists(sysfs_path)) {
>          virReportError(VIR_ERR_OPERATION_INVALID, "%s",
>                         _("unpriv_sgio is not supported by this
> kernel"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      val = g_strdup_printf("%d", unpriv_sgio);
>  
>      if ((rc = virFileWriteStr(sysfs_path, val, 0)) < 0) {
>          virReportSystemError(-rc, _("failed to set %s"),
> sysfs_path);
> -        goto cleanup;
> +        return ret;
>      }
>  
>      ret = 0;
> - cleanup:
> -    VIR_FREE(sysfs_path);
> -    VIR_FREE(val);
>      return ret;
>  }
>  
> @@ -1438,8 +1425,8 @@ virGetDeviceUnprivSGIO(const char *path,
>                         const char *sysfs_dir,
>                         int *unpriv_sgio)
>  {
> -    char *sysfs_path = NULL;
> -    char *buf = NULL;
> +    g_autofree char *sysfs_path = NULL;
> +    g_autofree char *buf = NULL;
>      char *tmp = NULL;
>      int ret = -1;
>  
> @@ -1449,11 +1436,11 @@ virGetDeviceUnprivSGIO(const char *path,
>      if (!virFileExists(sysfs_path)) {
>          virReportError(VIR_ERR_OPERATION_INVALID, "%s",
>                         _("unpriv_sgio is not supported by this
> kernel"));
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (virFileReadAll(sysfs_path, 1024, &buf) < 0)
> -        goto cleanup;
> +        return ret;
>  
>      if ((tmp = strchr(buf, '\n')))
>          *tmp = '\0';
> @@ -1461,13 +1448,10 @@ virGetDeviceUnprivSGIO(const char *path,
>      if (virStrToLong_i(buf, NULL, 10, unpriv_sgio) < 0) {
>          virReportError(VIR_ERR_INTERNAL_ERROR,
>                         _("failed to parse value of %s"),
> sysfs_path);
> -        goto cleanup;
> +        return ret;
>      }
>  
>      ret = 0;
> - cleanup:
> -    VIR_FREE(sysfs_path);
> -    VIR_FREE(buf);
>      return ret;
>  }
>  
> @@ -1488,7 +1472,7 @@ virParseOwnershipIds(const char *label, uid_t
> *uidPtr, gid_t *gidPtr)
>      int rc = -1;
>      uid_t theuid;
>      gid_t thegid;
> -    char *tmp_label = NULL;
> +    g_autofree char *tmp_label = NULL;
>      char *sep = NULL;
>      char *owner = NULL;
>      char *group = NULL;
> @@ -1501,7 +1485,7 @@ virParseOwnershipIds(const char *label, uid_t
> *uidPtr, gid_t *gidPtr)
>          virReportError(VIR_ERR_INVALID_ARG,
>                         _("Failed to parse uid and gid from '%s'"),
>                         label);
> -        goto cleanup;
> +        return rc;
>      }
>      *sep = '\0';
>      owner = tmp_label;
> @@ -1512,7 +1496,7 @@ virParseOwnershipIds(const char *label, uid_t
> *uidPtr, gid_t *gidPtr)
>       */
>      if (virGetUserID(owner, &theuid) < 0 ||
>          virGetGroupID(group, &thegid) < 0)
> -        goto cleanup;
> +        return rc;
>  
>      if (uidPtr)
>          *uidPtr = theuid;
> @@ -1520,10 +1504,6 @@ virParseOwnershipIds(const char *label, uid_t
> *uidPtr, gid_t *gidPtr)
>          *gidPtr = thegid;
>  
>      rc = 0;
> -
> - cleanup:
> -    VIR_FREE(tmp_label);
> -
>      return rc;
>  }
>  
> diff --git a/src/util/virvhba.c b/src/util/virvhba.c
> index a4e88024d1..d8642ea041 100644
> --- a/src/util/virvhba.c
> +++ b/src/util/virvhba.c
> @@ -49,7 +49,7 @@ bool
>  virVHBAPathExists(const char *sysfs_prefix,
>                    int host)
>  {
> -    char *sysfs_path = NULL;
> +    g_autofree char *sysfs_path = NULL;
>      bool ret = false;
>  
>      sysfs_path = g_strdup_printf("%s/host%d",
> @@ -58,7 +58,6 @@ virVHBAPathExists(const char *sysfs_prefix,
>      if (virFileExists(sysfs_path))
>          ret = true;
>  
> -    VIR_FREE(sysfs_path);
>      return ret;
>  }
>  
> @@ -79,8 +78,8 @@ bool
>  virVHBAIsVportCapable(const char *sysfs_prefix,
>                        int host)
>  {
> -    char *scsi_host_path = NULL;
> -    char *fc_host_path = NULL;
> +    g_autofree char *scsi_host_path = NULL;
> +    g_autofree char *fc_host_path = NULL;
>      bool ret = false;
>  
>      fc_host_path = g_strdup_printf("%s/host%d/%s",
> @@ -94,8 +93,6 @@ virVHBAIsVportCapable(const char *sysfs_prefix,
>      if (virFileExists(fc_host_path) ||
> virFileExists(scsi_host_path))
>          ret = true;
>  
> -    VIR_FREE(fc_host_path);
> -    VIR_FREE(scsi_host_path);
>      return ret;
>  }
>  
> @@ -115,19 +112,19 @@ virVHBAGetConfig(const char *sysfs_prefix,
>                   int host,
>                   const char *entry)
>  {
> -    char *sysfs_path = NULL;
> +    g_autofree char *sysfs_path = NULL;
>      char *p = NULL;
> -    char *buf = NULL;
> +    g_autofree char *buf = NULL;
>      char *result = NULL;
>  
>      sysfs_path = g_strdup_printf("%s/host%d/%s",
>                                   sysfs_prefix ? sysfs_prefix :
> SYSFS_FC_HOST_PATH, host, entry);
>  
>      if (!virFileExists(sysfs_path))
> -        goto cleanup;
> +        return result;
>  
>      if (virFileReadAll(sysfs_path, 1024, &buf) < 0)
> -        goto cleanup;
> +        return result;
>  
>      if ((p = strchr(buf, '\n')))
>          *p = '\0';
> @@ -139,9 +136,6 @@ virVHBAGetConfig(const char *sysfs_prefix,
>  
>      result = g_strdup(p);
>  
> - cleanup:
> -    VIR_FREE(sysfs_path);
> -    VIR_FREE(buf);
>      return result;
>  }
>  
> @@ -160,8 +154,8 @@ virVHBAFindVportHost(const char *sysfs_prefix)
>      const char *prefix = sysfs_prefix ? sysfs_prefix :
> SYSFS_FC_HOST_PATH;
>      g_autoptr(DIR) dir = NULL;
>      struct dirent *entry = NULL;
> -    char *max_vports = NULL;
> -    char *vports = NULL;
> +    g_autofree char *max_vports = NULL;
> +    g_autofree char *vports = NULL;
>      char *state = NULL;
>      char *ret = NULL;
>  
> @@ -212,16 +206,13 @@ virVHBAFindVportHost(const char *sysfs_prefix)
>              ((strlen(max_vports) == strlen(vports)) &&
>               strcmp(max_vports, vports) > 0)) {
>              ret = g_strdup(entry->d_name);
> -            goto cleanup;
> +            return ret;
>          }
>  
>          VIR_FREE(max_vports);
>          VIR_FREE(vports);
>      }
>  
> - cleanup:
> -    VIR_FREE(max_vports);
> -    VIR_FREE(vports);
>      return ret;
>  }
>  
> @@ -241,7 +232,8 @@ virVHBAManageVport(const int parent_host,
>                     int operation)
>  {
>      int ret = -1;
> -    char *operation_path = NULL, *vport_name = NULL;
> +    g_autofree char *operation_path = NULL;
> +    g_autofree char *vport_name = NULL;
>      const char *operation_file = NULL;
>  
>      switch (operation) {
> @@ -254,7 +246,7 @@ virVHBAManageVport(const int parent_host,
>      default:
>          virReportError(VIR_ERR_OPERATION_INVALID,
>                         _("Invalid vport operation (%d)"),
> operation);
> -        goto cleanup;
> +        return ret;
>      }
>  
>      operation_path = g_strdup_printf("%s/host%d/%s",
> SYSFS_FC_HOST_PATH,
> @@ -270,7 +262,7 @@ virVHBAManageVport(const int parent_host,
>                             _("vport operation '%s' is not supported
> "
>                               "for host%d"),
>                             operation_file, parent_host);
> -            goto cleanup;
> +            return ret;
>          }
>      }
>  
> @@ -290,9 +282,6 @@ virVHBAManageVport(const int parent_host,
>                                 "vport create/delete failed"),
>                               vport_name, operation_path);
>  
> - cleanup:
> -    VIR_FREE(vport_name);
> -    VIR_FREE(operation_path);
>      return ret;
>  }
>  
> @@ -315,8 +304,8 @@ vhbaReadCompareWWN(const char *prefix,
>                     const char *f_name,
>                     const char *wwn)
>  {
> -    char *path;
> -    char *buf = NULL;
> +    g_autofree char *path = NULL;
> +    g_autofree char *buf = NULL;
>      char *p;
>      int ret = -1;
>  
> @@ -324,11 +313,11 @@ vhbaReadCompareWWN(const char *prefix,
>  
>      if (!virFileExists(path)) {
>          ret = 0;
> -        goto cleanup;
> +        return ret;
>      }
>  
>      if (virFileReadAll(path, 1024, &buf) < 0)
> -        goto cleanup;
> +        return ret;
>  
>      if ((p = strchr(buf, '\n')))
>          *p = '\0';
> @@ -342,10 +331,6 @@ vhbaReadCompareWWN(const char *prefix,
>      else
>          ret = 1;
>  
> - cleanup:
> -    VIR_FREE(path);
> -    VIR_FREE(buf);
> -
>      return ret;
>  }
>  
> @@ -407,7 +392,7 @@ virVHBAGetHostByFabricWWN(const char
> *sysfs_prefix,
>      const char *prefix = sysfs_prefix ? sysfs_prefix :
> SYSFS_FC_HOST_PATH;
>      struct dirent *entry = NULL;
>      g_autoptr(DIR) dir = NULL;
> -    char *vport_create_path = NULL;
> +    g_autofree char *vport_create_path = NULL;
>      char *ret = NULL;
>  
>      if (virDirOpen(&dir, prefix) < 0)
> @@ -428,7 +413,7 @@ virVHBAGetHostByFabricWWN(const char
> *sysfs_prefix,
>  
>          if ((rc = vhbaReadCompareWWN(prefix, entry->d_name,
>                                       "fabric_name", fabric_wwn)) <
> 0)
> -            goto cleanup;
> +            return ret;
>  
>          if (rc == 0)
>              continue;
> @@ -437,8 +422,6 @@ virVHBAGetHostByFabricWWN(const char
> *sysfs_prefix,
>          break;
>      }
>  
> - cleanup:
> -    VIR_FREE(vport_create_path);
>      return ret;
>  }
>  
> diff --git a/src/util/virxml.c b/src/util/virxml.c
> index a3b819d85c..7df50e4b4d 100644
> --- a/src/util/virxml.c
> +++ b/src/util/virxml.c
> @@ -696,8 +696,8 @@ catchXMLError(void *ctx, const char *msg
> G_GNUC_UNUSED, ...)
>      unsigned int n, col;        /* GCC warns if signed, because
> compared with sizeof() */
>      int domcode = VIR_FROM_XML;
>      g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
> -    char *contextstr = NULL;
> -    char *pointerstr = NULL;
> +    g_autofree char *contextstr = NULL;
> +    g_autofree char *pointerstr = NULL;
>  
>  
>      /* conditions for error printing */
> @@ -763,9 +763,6 @@ catchXMLError(void *ctx, const char *msg
> G_GNUC_UNUSED, ...)
>                                contextstr,
>                                pointerstr);
>      }
> -
> -    VIR_FREE(contextstr);
> -    VIR_FREE(pointerstr);
>  }
>  
>  /**




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux