[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r5210 - in glibc-package/trunk/debian: . patches patches/any



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 <aurel32@debian.org>  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  <schwab@redhat.com>
+
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
+
+2011-06-21  Ulrich Drepper  <drepper@gmail.com>
+ 
+	[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


Reply to: