* resolv/nss_dns/dns-host.c (gaih_getanswer): Don't
unconditionally use second gaih_getanswer_slice result.
This commit is contained in:
parent
46f70b3ce8
commit
f854efd722
|
@ -1,5 +1,8 @@
|
||||||
2008-06-12 Ulrich Drepper <drepper@redhat.com>
|
2008-06-12 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* resolv/nss_dns/dns-host.c (gaih_getanswer): Don't
|
||||||
|
unconditionally use second gaih_getanswer_slice result.
|
||||||
|
|
||||||
* sysdeps/posix/getaddrinfo.c (gai_inet): Remove unnecessary test.
|
* sysdeps/posix/getaddrinfo.c (gai_inet): Remove unnecessary test.
|
||||||
(getaddrinfo): RES must always be non-NULL.
|
(getaddrinfo): RES must always be non-NULL.
|
||||||
|
|
||||||
|
|
|
@ -1097,11 +1097,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname,
|
||||||
|
|
||||||
if (__builtin_expect (buflen < sizeof (struct gaih_addrtuple),
|
if (__builtin_expect (buflen < sizeof (struct gaih_addrtuple),
|
||||||
0))
|
0))
|
||||||
{
|
goto too_small;
|
||||||
*errnop = ERANGE;
|
|
||||||
*h_errnop = NETDB_INTERNAL;
|
|
||||||
return NSS_STATUS_TRYAGAIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
*pat = (struct gaih_addrtuple *) buffer;
|
*pat = (struct gaih_addrtuple *) buffer;
|
||||||
buffer += sizeof (struct gaih_addrtuple);
|
buffer += sizeof (struct gaih_addrtuple);
|
||||||
|
@ -1175,11 +1171,17 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
|
||||||
&pat, &buffer, &buflen,
|
&pat, &buffer, &buflen,
|
||||||
errnop, h_errnop, ttlp,
|
errnop, h_errnop, ttlp,
|
||||||
&first);
|
&first);
|
||||||
if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND)
|
if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
|
||||||
|
|| status == NSS_STATUS_TRYAGAIN)
|
||||||
&& answer2 != NULL && anslen2 > 0)
|
&& answer2 != NULL && anslen2 > 0)
|
||||||
status = gaih_getanswer_slice(answer2, anslen2, qname,
|
{
|
||||||
&pat, &buffer, &buflen,
|
enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname,
|
||||||
errnop, h_errnop, ttlp, &first);
|
&pat, &buffer, &buflen,
|
||||||
|
errnop, h_errnop, ttlp,
|
||||||
|
&first);
|
||||||
|
if (status != NSS_STATUS_SUCCESS)
|
||||||
|
status = status2;
|
||||||
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue