aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/posix/getaddrinfo.c6
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;