Author: aurel32
Date: 2012-04-26 15:50:14 +0000 (Thu, 26 Apr 2012)
New Revision: 5210

Added:
   glibc-package/trunk/debian/patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Add patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff to correctly handle
    AI_V4MAPPED flag in getaddrinfo().  Closes: #663752.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2012-04-26 15:43:09 UTC (rev 
5209)
+++ glibc-package/trunk/debian/changelog        2012-04-26 15:50:14 UTC (rev 
5210)
@@ -50,6 +50,8 @@
     patches/arm/local-soname-hack.diff to fix non-policy compliant patch
     name.
   * Don't install getent(1).  Closes: #665303.
+  * Add patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff to correctly handle
+    AI_V4MAPPED flag in getaddrinfo().  Closes: #663752.
 
  -- Aurelien Jarno <[email protected]>  Thu, 26 Apr 2012 16:37:27 +0200
 

Added: glibc-package/trunk/debian/patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff     
                        (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-getaddrinfo-AI_V4MAPPED.diff     
2012-04-26 15:50:14 UTC (rev 5210)
@@ -0,0 +1,60 @@
+2011-06-22  Andreas Schwab  <[email protected]>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
+
+2011-06-21  Ulrich Drepper  <[email protected]>
+ 
+       [BZ #12885]
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
+       addresses using gethostbyname4_r ignore IPv4 addresses.
+
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -732,16 +732,44 @@
+                                             tmpbuflen, 2 * tmpbuflen);
+                   }
+ 
+-                no_inet6_data = no_data;
+-
+                 if (status == NSS_STATUS_SUCCESS)
+                   {
++                    assert (!no_data);
++                    no_data = 1;
++
+                     if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
+                       canon = (*pat)->name;
+ 
+                     while (*pat != NULL)
+-                      pat = &((*pat)->next);
++                      {
++                        if ((*pat)->family == AF_INET
++                            && req->ai_family == AF_INET6
++                            && (req->ai_flags & AI_V4MAPPED) != 0)
++                          {
++                            uint32_t *pataddr = (*pat)->addr;
++                            (*pat)->family = AF_INET6;
++                            pataddr[3] = pataddr[0];
++                            pataddr[2] = htonl (0xffff);
++                            pataddr[1] = 0;
++                            pataddr[0] = 0;
++                            pat = &((*pat)->next);
++                            no_data = 0;
++                          }
++                        else if (req->ai_family == AF_UNSPEC
++                                 || (*pat)->family == req->ai_family)
++                          {
++                            pat = &((*pat)->next);
++
++                            no_data = 0;
++                            if (req->ai_family == AF_INET6)
++                              got_ipv6 = true;
++                          }
++                        else
++                          *pat = ((*pat)->next);
++                      }
+                   }
++
++                no_inet6_data = no_data;
+               }
+             else
+               {

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2012-04-26 15:43:09 UTC (rev 
5209)
+++ glibc-package/trunk/debian/patches/series   2012-04-26 15:50:14 UTC (rev 
5210)
@@ -337,3 +337,4 @@
 any/cvs-fmtmsg-lock.diff
 any/cvs-reloc-sort.diff
 any/submitted-resolv-first-query-failure.diff
+any/cvs-getaddrinfo-AI_V4MAPPED.diff


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to