diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 13 |
2 files changed, 9 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog index d9970ac817..a9c01f44d9 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 46c66a8f7e..37f7fa0bd2 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; } } |