diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 5 |
2 files changed, 8 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2008-05-16 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_r + lookup, don't assign canon unconditionally. + 2008-05-14 Ulrich Drepper <drepper@redhat.com> * string/Makefile (distribute): Add str-two-way.h. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 8908fc10c3..2515d23c26 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -729,7 +729,8 @@ gaih_inet (const char *name, const struct gaih_service *service, if (status == NSS_STATUS_SUCCESS) { - canon = (*pat)->name; + if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL) + canon = (*pat)->name; while (*pat != NULL) pat = &((*pat)->next); @@ -953,7 +954,7 @@ gaih_inet (const char *name, const struct gaih_service *service, return -EAI_IDN_ENCODE; } /* In case the output string is the same as the input - string no new string has been allocated. Otherwise + string no new string has been allocated and we make a copy. */ if (out == canon) goto make_copy; |