]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
(gaih_inet): Fix problem with AF_UNSPEC lookup with AI_CANONNAME of name which has...
authorUlrich Drepper <drepper@redhat.com>
Mon, 6 Sep 2004 08:15:50 +0000 (08:15 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 6 Sep 2004 08:15:50 +0000 (08:15 +0000)
sysdeps/posix/getaddrinfo.c

index 3ffa329f732aa2364fd3c602e9577be6b07c045b..17331e54bced8a8195ddcb5a59b53845e03bc746 100644 (file)
@@ -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)