Modify code to use VIR_AUTOFREE macro wherever required. Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@xxxxxxxxx> --- src/util/virdnsmasq.c | 116 +++++++++++++++++--------------------------------- 1 file changed, 39 insertions(+), 77 deletions(-) diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c index 492dcad..c806cd2 100644 --- a/src/util/virdnsmasq.c +++ b/src/util/virdnsmasq.c @@ -95,7 +95,7 @@ addnhostsAdd(dnsmasqAddnHostsfile *addnhostsfile, virSocketAddr *ip, const char *name) { - char *ipstr = NULL; + VIR_AUTOFREE(char *) ipstr = NULL; int idx = -1; size_t i; @@ -111,35 +111,29 @@ addnhostsAdd(dnsmasqAddnHostsfile *addnhostsfile, if (idx < 0) { if (VIR_REALLOC_N(addnhostsfile->hosts, addnhostsfile->nhosts + 1) < 0) - goto error; + return -1; idx = addnhostsfile->nhosts; if (VIR_ALLOC(addnhostsfile->hosts[idx].hostnames) < 0) - goto error; + return -1; if (VIR_STRDUP(addnhostsfile->hosts[idx].ip, ipstr) < 0) - goto error; + return -1; addnhostsfile->hosts[idx].nhostnames = 0; addnhostsfile->nhosts++; } if (VIR_REALLOC_N(addnhostsfile->hosts[idx].hostnames, addnhostsfile->hosts[idx].nhostnames + 1) < 0) - goto error; + return -1; if (VIR_STRDUP(addnhostsfile->hosts[idx].hostnames[addnhostsfile->hosts[idx].nhostnames], name) < 0) - goto error; - - VIR_FREE(ipstr); + return -1; addnhostsfile->hosts[idx].nhostnames++; return 0; - - error: - VIR_FREE(ipstr); - return -1; } static dnsmasqAddnHostsfile * @@ -178,11 +172,10 @@ addnhostsWrite(const char *path, dnsmasqAddnHost *hosts, unsigned int nhosts) { - char *tmp; + VIR_AUTOFREE(char *) tmp = NULL; FILE *f; bool istmp = true; size_t i, j; - int rc = 0; /* even if there are 0 hosts, create a 0 length file, to allow * for runtime addition. @@ -193,61 +186,50 @@ addnhostsWrite(const char *path, if (!(f = fopen(tmp, "w"))) { istmp = false; - if (!(f = fopen(path, "w"))) { - rc = -errno; - goto cleanup; - } + if (!(f = fopen(path, "w"))) + return -errno; } for (i = 0; i < nhosts; i++) { if (fputs(hosts[i].ip, f) == EOF || fputc('\t', f) == EOF) { - rc = -errno; VIR_FORCE_FCLOSE(f); if (istmp) unlink(tmp); - goto cleanup; + return -errno; } for (j = 0; j < hosts[i].nhostnames; j++) { if (fputs(hosts[i].hostnames[j], f) == EOF || fputc('\t', f) == EOF) { - rc = -errno; VIR_FORCE_FCLOSE(f); if (istmp) unlink(tmp); - goto cleanup; + return -errno; } } if (fputc('\n', f) == EOF) { - rc = -errno; VIR_FORCE_FCLOSE(f); if (istmp) unlink(tmp); - goto cleanup; + return -errno; } } - if (VIR_FCLOSE(f) == EOF) { - rc = -errno; - goto cleanup; - } + if (VIR_FCLOSE(f) == EOF) + return -errno; if (istmp && rename(tmp, path) < 0) { - rc = -errno; unlink(tmp); - goto cleanup; + return -errno; } - cleanup: - VIR_FREE(tmp); - - return rc; + return 0; } static int @@ -310,9 +292,10 @@ hostsfileAdd(dnsmasqHostsfile *hostsfile, const char *id, bool ipv6) { - char *ipstr = NULL; + VIR_AUTOFREE(char *) ipstr = NULL; + if (VIR_REALLOC_N(hostsfile->hosts, hostsfile->nhosts + 1) < 0) - goto error; + return -1; if (!(ipstr = virSocketAddrFormat(ip))) return -1; @@ -322,38 +305,33 @@ hostsfileAdd(dnsmasqHostsfile *hostsfile, if (name && id) { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "id:%s,%s,[%s]", id, name, ipstr) < 0) - goto error; + return -1; } else if (name && !id) { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "%s,[%s]", name, ipstr) < 0) - goto error; + return -1; } else if (!name && id) { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "id:%s,[%s]", id, ipstr) < 0) - goto error; + return -1; } } else if (name && mac) { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "%s,%s,%s", mac, ipstr, name) < 0) - goto error; + return -1; } else if (name && !mac) { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "%s,%s", name, ipstr) < 0) - goto error; + return -1; } else { if (virAsprintf(&hostsfile->hosts[hostsfile->nhosts].host, "%s,%s", mac, ipstr) < 0) - goto error; + return -1; } - VIR_FREE(ipstr); hostsfile->nhosts++; return 0; - - error: - VIR_FREE(ipstr); - return -1; } static dnsmasqHostsfile * @@ -391,11 +369,10 @@ hostsfileWrite(const char *path, dnsmasqDhcpHost *hosts, unsigned int nhosts) { - char *tmp; + VIR_AUTOFREE(char *) tmp = NULL; FILE *f; bool istmp = true; size_t i; - int rc = 0; /* even if there are 0 hosts, create a 0 length file, to allow * for runtime addition. @@ -406,39 +383,30 @@ hostsfileWrite(const char *path, if (!(f = fopen(tmp, "w"))) { istmp = false; - if (!(f = fopen(path, "w"))) { - rc = -errno; - goto cleanup; - } + if (!(f = fopen(path, "w"))) + return -errno; } for (i = 0; i < nhosts; i++) { if (fputs(hosts[i].host, f) == EOF || fputc('\n', f) == EOF) { - rc = -errno; VIR_FORCE_FCLOSE(f); if (istmp) unlink(tmp); - goto cleanup; + return -errno; } } - if (VIR_FCLOSE(f) == EOF) { - rc = -errno; - goto cleanup; - } + if (VIR_FCLOSE(f) == EOF) + return -errno; if (istmp && rename(tmp, path) < 0) { - rc = -errno; unlink(tmp); - goto cleanup; + return -errno; } - cleanup: - VIR_FREE(tmp); - - return rc; + return 0; } static int @@ -708,17 +676,12 @@ dnsmasqCapsSetFromBuffer(dnsmasqCapsPtr caps, const char *buf) static int dnsmasqCapsSetFromFile(dnsmasqCapsPtr caps, const char *path) { - int ret = -1; - char *buf = NULL; + VIR_AUTOFREE(char *) buf = NULL; if (virFileReadAll(path, 1024 * 1024, &buf) < 0) - goto cleanup; - - ret = dnsmasqCapsSetFromBuffer(caps, buf); + return -1; - cleanup: - VIR_FREE(buf); - return ret; + return dnsmasqCapsSetFromBuffer(caps, buf); } static int @@ -727,7 +690,9 @@ dnsmasqCapsRefreshInternal(dnsmasqCapsPtr caps, bool force) int ret = -1; struct stat sb; virCommandPtr cmd = NULL; - char *help = NULL, *version = NULL, *complete = NULL; + VIR_AUTOFREE(char *) help = NULL; + VIR_AUTOFREE(char *) version = NULL; + VIR_AUTOFREE(char *) complete = NULL; if (!caps || caps->noRefresh) return 0; @@ -779,9 +744,6 @@ dnsmasqCapsRefreshInternal(dnsmasqCapsPtr caps, bool force) cleanup: virCommandFree(cmd); - VIR_FREE(help); - VIR_FREE(version); - VIR_FREE(complete); return ret; } -- 1.8.3.1 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list