diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-05-18 10:56:45 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2008-05-18 10:56:45 +0000 |
commit | 21032d9230e840a1f8b89d43e1e8d63ccf7c6eae (patch) | |
tree | 4d32b089580a63a332024e526938eb40613e7b27 /resolv | |
parent | 4681f435969ca9806da160d3ae564668ddfecfe2 (diff) | |
download | glibc-21032d9230e840a1f8b89d43e1e8d63ccf7c6eae.tar glibc-21032d9230e840a1f8b89d43e1e8d63ccf7c6eae.tar.gz glibc-21032d9230e840a1f8b89d43e1e8d63ccf7c6eae.tar.bz2 glibc-21032d9230e840a1f8b89d43e1e8d63ccf7c6eae.zip |
Updated to fedora-glibc-20080518T1017cvs/fedora-glibc-2_8_90-3
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/nss_dns/dns-host.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index c52f9f7f84..d998ebf4f5 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -990,6 +990,9 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, char *h_name = NULL; int h_namelen = 0; + if (ancount == 0) + return NSS_STATUS_NOTFOUND; + while (ancount-- > 0 && cp < end_of_message && had_error == 0) { n = __ns_name_unpack (answer->buf, end_of_message, cp, @@ -1164,12 +1167,15 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2, { int first = 1; - enum nss_status status = gaih_getanswer_slice(answer1, anslen1, qname, - &pat, &buffer, &buflen, - errnop, h_errnop, ttlp, - &first); + enum nss_status status = NSS_STATUS_NOTFOUND; + + if (anslen1 > 0) + status = gaih_getanswer_slice(answer1, anslen1, qname, + &pat, &buffer, &buflen, + errnop, h_errnop, ttlp, + &first); if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND) - && answer2 != NULL) + && answer2 != NULL && anslen2 > 0) status = gaih_getanswer_slice(answer2, anslen2, qname, &pat, &buffer, &buflen, errnop, h_errnop, ttlp, &first); |