about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/posix/getaddrinfo.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index 3ffa329f73..17331e54bc 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -88,6 +88,7 @@ static const struct gaih_servtuple nullserv;
 struct gaih_addrtuple
   {
     struct gaih_addrtuple *next;
+    char *name;
     int family;
     uint32_t addr[4];
     uint32_t scopeid;
@@ -321,6 +322,7 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
 	    }								      \
 	  uint32_t *addr = (*pat)->addr;				      \
 	  (*pat)->next = NULL;						      \
+	  (*pat)->name = i == 0 ? strdupa (h->h_name) : NULL;		      \
 	  if (_family == AF_INET && req->ai_family == AF_INET6)		      \
 	    {								      \
 	      (*pat)->family = AF_INET6;				      \
@@ -658,7 +660,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
 			      char *buf = alloca (max_fqdn_len);
 			      char *s;
 
-			      if (DL_CALL_FCT (cfct, (h->h_name ?: name, buf,
+			      if (DL_CALL_FCT (cfct, (at->name ?: name, buf,
 						      max_fqdn_len, &s, &rc,
 						      &herrno))
 				  == NSS_STATUS_SUCCESS)