From: Ondřej Bílka Date: Sun, 16 Feb 2014 11:59:23 +0000 (+0100) Subject: Deduplicate resolv/nss_dns/dns-host.c X-Git-Tag: glibc-2.20~855 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab7ac0f2;p=thirdparty%2Fglibc.git Deduplicate resolv/nss_dns/dns-host.c In resolv/nss_dns/dns-host.c one of code path duplicated code after that. We merge these paths. --- diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index 365de7095fb..47f998c2392 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -315,7 +315,13 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat, int n = __libc_res_nsearch (&_res, name, C_IN, T_UNSPEC, host_buffer.buf->buf, anslen, &host_buffer.ptr, &ans2p, &nans2p, &resplen2); - if (n < 0) + if (n >= 0) + { + status = gaih_getanswer (host_buffer.buf, n, (const querybuf *) ans2p, + resplen2, name, pat, buffer, buflen, + errnop, herrnop, ttlp); + } + else { switch (errno) { @@ -342,17 +348,8 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat, *errnop = EAGAIN; else __set_errno (olderr); - - if (host_buffer.buf != orig_host_buffer) - free (host_buffer.buf); - - return status; } - status = gaih_getanswer(host_buffer.buf, n, (const querybuf *) ans2p, - resplen2, name, pat, buffer, buflen, - errnop, herrnop, ttlp); - /* Check whether ans2p was separately allocated. */ if (host_buffer.buf != orig_host_buffer) anslen = MAXPACKET;