* canon-host.c (canon_host_r): Work around bug in Darwin 7.9.0
[gnulib.git] / lib / canon-host.c
index c0b7c13..c29f314 100644 (file)
@@ -69,7 +69,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);