File glibc-fix-double-loopback.diff of Package glibc.30547

This fixes the problem of getent ahosts localhost returning 127.0.0.1
_twice_ on systems that have no ipv6 interfaces up (hence are regarded
as ipv4 only by the lookup code), but still have localhost entries for
::1 and 127.0.0.1 in /etc/hosts (like most current systems).

Remapping ::1 to 127.0.0.1 is bogus when /etc/hosts is correct.
bnc #684534, #606980
http://sources.redhat.com/bugzilla/show_bug.cgi?id=4980

Index: glibc-2.17.90/nss/nss_files/files-hosts.c
===================================================================
--- glibc-2.17.90.orig/nss/nss_files/files-hosts.c
+++ glibc-2.17.90/nss/nss_files/files-hosts.c
@@ -68,11 +68,6 @@ LINE_PARSER
 	 {
 	   if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr))
 	     memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ);
-	   else if (IN6_IS_ADDR_LOOPBACK (entdata->host_addr))
-	     {
-	       in_addr_t localhost = htonl (INADDR_LOOPBACK);
-	       memcpy (entdata->host_addr, &localhost, sizeof (localhost));
-	     }
 	   else
 	     /* Illegal address: ignore line.  */
 	     return 0;
openSUSE Build Service is sponsored by