diff options
author | Eric Andersen <andersen@codepoet.org> | 2007-02-02 00:23:55 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2007-02-02 00:23:55 +0000 |
commit | 9af4b40d3886077df93b02458026f6a9766ac6c9 (patch) | |
tree | 1b4514bea794adb7a2f629a1431bd1e72d94f1ed /libc/inet/resolv.c | |
parent | 28f3c7c9130c9a8e796f40fe81745035c774b36a (diff) |
fix obvious bug in ipv4/ipv6 resolving. When not using AF_INET,
gethostbyname2_r tries to resolve an ipv6 address from /etc/hosts using
get_hosts_byname_r, but with AF_INET instead of the supplied address family.
This returns ipv4 addresses marked as ipv6 ones. Fix from nbd.
Diffstat (limited to 'libc/inet/resolv.c')
-rw-r--r-- | libc/inet/resolv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 16d640e4f..68b096e1b 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -2130,7 +2130,7 @@ int gethostbyname2_r(const char *name, int family, int old_errno = errno; /* Save the old errno and reset errno */ __set_errno(0); /* to check for missing /etc/hosts. */ - if ((i=__get_hosts_byname_r(name, AF_INET, result_buf, + if ((i=__get_hosts_byname_r(name, family, result_buf, buf, buflen, result, h_errnop))==0) return i; switch (*h_errnop) { |