aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2014-09-27 07:13:20 -0300
committerAlexandre Oliva <aoliva@redhat.com>2014-11-07 07:18:53 -0200
commit7875573cbe52eabe78f1cab91c8a046d0bd5ed5a (patch)
tree12bb64786ab07513e651e9c3a3dba1803c97aa81
parent393207b6a74aeed6227d88174b8b37e4ee095260 (diff)
downloadglibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.zip
glibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.tar.gz
glibc-7875573cbe52eabe78f1cab91c8a046d0bd5ed5a.tar.bz2
drop address family conversions from /etc/hosts parser
for ChangeLog * nss/nss_files/files-hosts.c (LINE_PARSER): Drop all address family conversions.
-rw-r--r--nss/nss_files/files-hosts.c30
1 files changed, 5 insertions, 25 deletions
diff --git a/nss/nss_files/files-hosts.c b/nss/nss_files/files-hosts.c
index 639345a..c1f22c6 100644
--- a/nss/nss_files/files-hosts.c
+++ b/nss/nss_files/files-hosts.c
@@ -43,9 +43,6 @@ 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,29 +57,12 @@ LINE_PARSER
if (inet_pton (af == AF_UNSPEC ? AF_INET : af, addr, entdata->host_addr)
> 0)
af = af == AF_UNSPEC ? AF_INET : af;
+ else if (af == AF_UNSPEC
+ && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
+ af = AF_INET6;
else
- {
- if (af == AF_INET6 && (flags & AI_V4MAPPED) != 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
- && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
- {
- if (IN6_IS_ADDR_V4MAPPED (entdata->host_addr))
- memcpy (entdata->host_addr, entdata->host_addr + 12, INADDRSZ);
- else
- /* Illegal address: ignore line. */
- return 0;
- }
- else if (af == AF_UNSPEC
- && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
- af = AF_INET6;
- else
- /* Illegal address: ignore line. */
- return 0;
- }
+ /* Illegal address: ignore line. */
+ return 0;
/* We always return entries of the requested form. */
result->h_addrtype = af;