From 91c8a74b8b9f7bf24aae101190750c2ec7b9ab23 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 16 May 2008 15:36:26 +0000 Subject: [PATCH] * sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_r lookup, don't assign canon unconditionally. --- ChangeLog | 5 +++++ sysdeps/posix/getaddrinfo.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28b65e3e6a..01dd75a433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-05-16 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (gaih_inet): After gethostbyname4_r + lookup, don't assign canon unconditionally. + 2008-05-14 Ulrich Drepper * 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;