X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fcanon-host.c;h=50ba67a6cfd11222cc91936c79acb2ad684d28b4;hb=d90792110b23736fb629c7f3ee150d917e8e9e3a;hp=c0b7c13445874f92207c3acae929dbbf1c125931;hpb=0632e115747ff96e93330c88f536d7354a7ce507;p=gnulib.git diff --git a/lib/canon-host.c b/lib/canon-host.c index c0b7c1344..50ba67a6c 100644 --- a/lib/canon-host.c +++ b/lib/canon-host.c @@ -1,6 +1,6 @@ /* Host name canonicalization - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. Written by Derek Price . @@ -22,8 +22,9 @@ #include "canon-host.h" +#include + #include "getaddrinfo.h" -#include "strdup.h" /* Store the last error for the single-threaded version of this function. */ static int last_cherror; @@ -69,7 +70,10 @@ canon_host_r (char const *host, int *cherror) status = getaddrinfo (host, NULL, &hints, &res); if (!status) { - retval = strdup (res->ai_canonname); + /* http://lists.gnu.org/archive/html/bug-coreutils/2006-09/msg00300.html + says Darwin 7.9.0 getaddrinfo returns 0 but sets + res->ai_canonname to NULL. */ + retval = strdup (res->ai_canonname ? res->ai_canonname : host); if (!retval && cherror) *cherror = EAI_MEMORY; freeaddrinfo (res);