From: Alexandre Oliva Date: Sat, 27 Sep 2014 10:13:20 +0000 (-0300) Subject: drop v4-to-v6 conversions of loopback addresses from /etc/hosts X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=393207b6a74aeed6227d88174b8b37e4ee095260;p=thirdparty%2Fglibc.git drop v4-to-v6 conversions of loopback addresses from /etc/hosts for ChangeLog * nss/nss_files/files-hosts.c (LINE_PARSER): Drop family conversion of loopback addresses from IPv4 to IPv6. --- diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c index 49656bc61d1..639345a6726 100644 --- a/nss/nss_files/files-hosts.c +++ b/nss/nss_files/files-hosts.c @@ -43,6 +43,9 @@ struct hostent_data char *h_addr_ptrs[2]; /* Points to that and null terminator. */ }; +#define IN_IS_ADDR_LOOPBACK(addr) \ + (((const char *)(addr))[0] == IN_LOOPBACKNET) + #define TRAILING_LIST_MEMBER h_aliases #define TRAILING_LIST_SEPARATOR_P isspace #include "files-parse.c" @@ -60,7 +63,8 @@ LINE_PARSER else { if (af == AF_INET6 && (flags & AI_V4MAPPED) != 0 - && inet_pton (AF_INET, addr, entdata->host_addr) > 0) + && inet_pton (AF_INET, addr, entdata->host_addr) > 0 + && !IN_IS_ADDR_LOOPBACK (entdata->host_addr)) map_v4v6_address ((char *) entdata->host_addr, (char *) entdata->host_addr); else if (af == AF_INET