From 1c632cebfa24f661f77e0e51d360b53d631e59b4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 9 Nov 2006 20:30:06 +0000 Subject: * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for temporary or deprecated addresses. Patch by Sridhar Samudrala . --- ChangeLog | 4 ++++ sysdeps/posix/getaddrinfo.c | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7932258837..414a175c5c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2006-11-09 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for + temporary or deprecated addresses. + Patch by Sridhar Samudrala . + * string/Makefile (tests): Add tst-strxfrm2. * string/tst-strxfrm2.c: New file. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 84a6293365..b4966852a7 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -2085,10 +2085,12 @@ getaddrinfo (const char *name, const char *service, if (q->ai_family == PF_INET6 && in6ai != NULL) { - /* See whether the address is the list of deprecated - or temporary addresses. */ + /* See whether the source address is the list of + deprecated or temporary addresses. */ struct in6addrinfo tmp; - memcpy (tmp.addr, q->ai_addr, IN6ADDRSZ); + struct sockaddr_in6 *sin6p + = (struct sockaddr_in6 *) &results[i].source_addr; + memcpy (tmp.addr, &sin6p->sin6_addr, IN6ADDRSZ); struct in6addrinfo *found = bsearch (&tmp, in6ai, in6ailen, sizeof (*in6ai), -- cgit v1.2.3