changeset 7378:4dc1cdcb962f

* canon-host.c (canon_host_r): Work around bug in Darwin 7.9.0 getaddrinfo.
author Paul Eggert <eggert@cs.ucla.edu>
date Wed, 27 Sep 2006 18:25:47 +0000
parents 90d2ef86dc8e
children 3ee6e46a13c3
files lib/ChangeLog lib/canon-host.c
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,5 +1,8 @@
 2006-09-27  Paul Eggert  <eggert@cs.ucla.edu>
 
+	* canon-host.c (canon_host_r): Work around bug in Darwin 7.9.0
+	getaddrinfo.
+
 	* __fpending.h: Don't include <stdio_ext.h> unless
 	HAVE_DECL___FPENDING.  This avoids a bug with lsbcc, where
 	it causes <stdio_ext.h> to cause a compile-time error.
--- a/lib/canon-host.c
+++ b/lib/canon-host.c
@@ -69,7 +69,10 @@
   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);