diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | 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 <drepper@redhat.com> + * 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; |