* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for cvs/fedora-glibc-20061109T2048
authorUlrich Drepper <drepper@redhat.com>
Thu, 9 Nov 2006 20:30:06 +0000 (20:30 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 9 Nov 2006 20:30:06 +0000 (20:30 +0000)
temporary or deprecated addresses.
Patch by Sridhar Samudrala <sri@us.ibm.com>.

ChangeLog
sysdeps/posix/getaddrinfo.c

index 7932258..414a175 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-11-09  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
+       temporary or deprecated addresses.
+       Patch by Sridhar Samudrala <sri@us.ibm.com>.
+
        * string/Makefile (tests): Add tst-strxfrm2.
        * string/tst-strxfrm2.c: New file.
 
index 84a6293..b496685 100644 (file)
@@ -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),