diff options
author | Ulrich Drepper <drepper@redhat.com> | 2010-04-09 21:38:20 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-04-09 21:38:20 -0700 |
commit | ea42a20caed5b343ff20a0d4622ae6c17b77161b (patch) | |
tree | d4d57d9ea754be4d720e7946b5e439e4cea45505 /resolv | |
parent | 17ad3877276b37af45c380b07b975406cf2e95de (diff) | |
download | glibc-ea42a20caed5b343ff20a0d4622ae6c17b77161b.zip glibc-ea42a20caed5b343ff20a0d4622ae6c17b77161b.tar.gz glibc-ea42a20caed5b343ff20a0d4622ae6c17b77161b.tar.bz2 |
Fix crash on reloading of gai data in nscd.
Diffstat (limited to 'resolv')
-rw-r--r-- | resolv/nss_dns/dns-host.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index e0c4978..8592183 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -1050,7 +1050,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, ++had_error; continue; } - if (*firstp) + if (*firstp && canon == NULL) { h_name = buffer; buffer += h_namelen; @@ -1166,19 +1166,7 @@ gaih_getanswer_slice (const querybuf *answer, int anslen, const char *qname, if (ttl != 0 && ttlp != NULL) *ttlp = ttl; - if (canon != NULL) - { - (*pat)->name = canon; - - /* Reclaim buffer space. */ - if (h_name + h_namelen == buffer) - { - buffer = h_name; - buflen += h_namelen; - } - } - else - (*pat)->name = h_name; + (*pat)->name = canon ?: h_name; *firstp = 0; } |