From 91c8a74b8b9f7bf24aae101190750c2ec7b9ab23 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 16 May 2008 15:36:26 +0000 Subject: * sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_r lookup, don't assign canon unconditionally. --- sysdeps/posix/getaddrinfo.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sysdeps/posix/getaddrinfo.c') 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; -- cgit 1.4.1