aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/posix/getaddrinfo.c13
2 files changed, 9 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index d9970ac..a9c01f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-29 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/posix/getaddrinfo.c (gaih_inet): No need to duplicate
+ 'name' for 'canon'. The final allocation will happen later.
+
2006-03-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/kernel-features.h: Remove support for
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 46c66a8..37f7fa0 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -538,16 +538,10 @@ gaih_inet (const char *name, const struct gaih_service *service,
else
return -EAI_ADDRFAMILY;
- dupname:
if (req->ai_flags & AI_CANONNAME)
- {
- canon = strdup (name);
- if (canon == NULL)
- return -EAI_MEMORY;
- }
+ canon = name;
}
-
- if (at->family == AF_UNSPEC)
+ else if (at->family == AF_UNSPEC)
{
char *namebuf = (char *) name;
char *scope_delim = strchr (name, SCOPE_DELIMITER);
@@ -595,7 +589,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
}
}
- goto dupname;
+ if (req->ai_flags & AI_CANONNAME)
+ canon = name;
}
}