Bug 14212 - getaddrinfo() with multiple results from /etc/hosts and AF_INET6 in hints fails when /etc/hosts.conf:multi=off
: getaddrinfo() with multiple results from /etc/hosts and AF_INET6 in hints fai...
Status: NEW
Product: glibc
Classification: Unclassified
Component: network
: 2.15
: P2 normal
: ---
Assigned To: Not yet assigned to anyone
:
:
:
:
  Show dependency treegraph
 
Reported: 2012-06-09 05:15 UTC by Mike Frysinger
Modified: 2013-04-15 13:11 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
getaddrinfo test (745 bytes, text/plain)
2012-06-09 05:15 UTC, Mike Frysinger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Frysinger 2012-06-09 05:15:17 UTC
Created attachment 6444 [details]
getaddrinfo test

i have these /etc settings:

$ cat /etc/hosts
127.0.0.1   localhost
::1         localhost

$ cat /etc/host.conf 
order hosts, bind
multi off

trying to do getaddrinfo("localhost") when hints is just set to
ai_family=AF_INET6 fails with EAI_NODATA when it should have returned ::1

if i change multi on, then i get back ::1 as expected

if i also use ai_flags=AI_V4MAPPED, then multi off gives me ::ffff:127.0.0.1 --
which is correct, just pointing out that it seems to be matching the first
result and then aborting because the hints didn't line up

see attached code:
$ gcc getaddrinfo.c && ./a.out localhost
Comment 1 Siddhesh Poyarekar 2013-04-15 13:11:27 UTC
I cannot reproduce this with latest master.

$ cat /etc/hosts
127.0.0.1   localhost
::1         localhost

$ cat /etc/host.conf
order hosts, bind
multi off

$ ./a.out localhost
this is an IPv6 result
this is an IPv6 result
this is an IPv6 result