diff options
author | Ondřej Bílka <neleai@seznam.cz> | 2014-02-16 12:59:23 +0100 |
---|---|---|
committer | Ondřej Bílka <neleai@seznam.cz> | 2014-02-16 12:59:23 +0100 |
commit | ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725 (patch) | |
tree | 2b26126f6afcd927fcb734c7750b60ea69340e95 /resolv | |
parent | c70a4b1db0cf5e813ae24b0fa96a352399eb6edf (diff) | |
download | glibc-ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725.tar.gz glibc-ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725.tar.xz glibc-ab7ac0f2cf8731fe4c3f3aea6088a7c0127b5725.zip |
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.
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/nss_dns/dns-host.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index 365de7095f..47f998c239 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; |