diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-05-16 15:36:26 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-05-16 15:36:26 +0000 |
commit | 91c8a74b8b9f7bf24aae101190750c2ec7b9ab23 (patch) | |
tree | f4032764b653c8574abf250c353c30d2e04a109e /sysdeps | |
parent | 0caca71ac95d12c6f45bbbe39d9adb7ac7074146 (diff) | |
download | glibc-91c8a74b8b9f7bf24aae101190750c2ec7b9ab23.tar.gz glibc-91c8a74b8b9f7bf24aae101190750c2ec7b9ab23.tar.xz glibc-91c8a74b8b9f7bf24aae101190750c2ec7b9ab23.zip |
* sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_r
lookup, don't assign canon unconditionally.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 5 |
1 files changed, 3 insertions, 2 deletions
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; |