From: Ulrich Drepper Date: Mon, 6 Sep 2004 08:15:50 +0000 (+0000) Subject: (gaih_inet): Fix problem with AF_UNSPEC lookup with AI_CANONNAME of name which has... X-Git-Tag: cvs/fedora-base~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0d8b23d61009f2681b930c66be595df193b0f55;p=thirdparty%2Fglibc.git (gaih_inet): Fix problem with AF_UNSPEC lookup with AI_CANONNAME of name which has only IPv6 addresses. --- diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 3ffa329f732..17331e54bce 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)