From 163288fe2e01f9b68febb184795bf4a1d9776874 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 19 Jun 2004 00:01:42 +0000 Subject: [PATCH] Update. * sysdeps/posix/getaddrinfo.c (gaih_inet): For AI_CANONNAME, determine the canonical name only for the first returned entry. --- ChangeLog | 3 +++ sysdeps/posix/getaddrinfo.c | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a601f02e96..b4b3447185 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-06-18 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (gaih_inet): For AI_CANONNAME, + determine the canonical name only for the first returned entry. + * inet/bug-if1.c: New file. * inet/Makefile (tests): Add bug-if1. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index e3b83e5ea1..bc5f0699a3 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -762,7 +762,6 @@ gaih_inet (const char *name, const struct gaih_service *service, return 0; { - const char *c = NULL; struct gaih_servtuple *st2; struct gaih_addrtuple *at2 = at; size_t socklen, namelen; @@ -773,7 +772,10 @@ gaih_inet (const char *name, const struct gaih_service *service, */ while (at2 != NULL) { - if (req->ai_flags & AI_CANONNAME) + const char *c = NULL; + + /* Only the first entry gets the canonical name. */ + if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0) { struct hostent *h = NULL;