<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://sourceware.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="4.4+"
          urlbase="http://sourceware.org/bugzilla/"
          
          maintainer="overseers@sourceware.org"
>

    <bug>
          <bug_id>5460</bug_id>
          
          <creation_ts>2007-12-09 04:33:00 +0000</creation_ts>
          <short_desc>glibc-2.6+ returns too many results from /etc/hosts in some cases</short_desc>
          <delta_ts>2008-07-07 20:44:38 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>glibc</product>
          <component>libc</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>4980</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike Frysinger">vapier</reporter>
          <assigned_to name="Ulrich Drepper">drepper.fsp</assigned_to>
          <cc>glibc-bugs</cc>
    
    <cc>tonnerre</cc>
    
    <cc>toolchain</cc>
          <cf_gcchost></cf_gcchost>
          <cf_gcctarget></cf_gcctarget>
          <cf_gccbuild></cf_gccbuild>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>20593</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Frysinger">vapier</who>
    <bug_when>2007-12-09 04:33:57 +0000</bug_when>
    <thetext>if /etc/hosts looks like:
127.0.0.1       localhost localhost4
::1             localhost localhost6

and you lookup &quot;localhost6&quot; with getaddrinfo(), the function returns &quot;127.0.0.1&quot;
and &quot;::1&quot;

glibc-2.5 and older operates correctly and only returns &quot;::1&quot;.  glibc-2.6 and
newer will in addition incorrectly return &quot;127.0.0.1&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20594</commentid>
    <comment_count>1</comment_count>
      <attachid>2128</attachid>
    <who name="Mike Frysinger">vapier</who>
    <bug_when>2007-12-09 04:36:15 +0000</bug_when>
    <thetext>Created attachment 2128
getaddrinfo.c test case

running this test case on newer glibc&apos;s will show:
$ ./getaddrinfo localhost6
--- looking up &apos;localhost6&apos; for family 0 (0)
getaddrinfo(...) = EAI_NONAME, trying again with AI_CANONNAME
getaddrinfo(...) = 0
getnameinfo(...) = 0
	name = 127.0.0.1
	service = 23
getnameinfo(...) = 0
	name = ::1
	service = 23
--- looking up &apos;localhost6&apos; for family AF_INET (2)
getaddrinfo(...) = EAI_NONAME, trying again with AI_CANONNAME
getaddrinfo(...) = 0
getnameinfo(...) = 0
	name = 127.0.0.1
	service = 23
--- looking up &apos;localhost6&apos; for family AF_INET6 (10)
getaddrinfo(...) = EAI_NONAME, trying again with AI_CANONNAME
getaddrinfo(...) = 0
getnameinfo(...) = 0
	name = ::1
	service = 23

on older glibc versions, that &quot;127.0.0.1&quot; entry wont crop up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22664</commentid>
    <comment_count>2</comment_count>
    <who name="Ulrich Drepper">drepper.fsp</who>
    <bug_when>2008-04-07 16:34:59 +0000</bug_when>
    <thetext>Returning both entries is correct.  It&apos;s the same in DNS: multiple entries are
all returned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22667</commentid>
    <comment_count>3</comment_count>
    <who name="Mike Frysinger">vapier</who>
    <bug_when>2008-04-07 17:45:46 +0000</bug_when>
    <thetext>looking up &quot;localhost6&quot; should never result in &quot;127.0.0.1&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22732</commentid>
    <comment_count>4</comment_count>
    <who name="Ulrich Drepper">drepper.fsp</who>
    <bug_when>2008-04-09 17:05:41 +0000</bug_when>
    <thetext>The code works as designed.  This is no new change.  Back in November 2006 I
added code to map V6 addresses to v4 addresses in gethostbyname2(AF_INET) calls
if it is possible.  This is what happens here.  The results are not wrong since
you did not ask for a specific protocol.

At some point, when we have unified lookup instead of separate IPv4/v6 lookups,
this might change.  But for now it works as expected and the program will work
correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22720</commentid>
    <comment_count>5</comment_count>
    <who name="Petr Baudis">pasky</who>
    <bug_when>2008-04-09 17:25:53 +0000</bug_when>
    <thetext>It is not obvious that the design of the current code makes any sense, but looks
like we will never get to know the reasons behind it... c.f.
http://sourceware.org/bugzilla/show_bug.cgi?id=4980</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2128</attachid>
            <date>2007-12-09 04:36:00 +0000</date>
            <delta_ts>2007-12-09 04:36:15 +0000</delta_ts>
            <desc>getaddrinfo.c test case</desc>
            <filename>getaddrinfo.c</filename>
            <type>text/plain</type>
            <size>1611</size>
            <attacher name="Mike Frysinger">vapier</attacher>
            
              <data encoding="base64">I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8bmV0ZGIuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+
CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8YXJwYS9p
bmV0Lmg+CiNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNp
bmNsdWRlIDxzeXMvdHlwZXMuaD4KCnZvaWQgZG9pdChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBj
aGFyICpmYW1pbHlfbmFtZSwgaW50IGZhbWlseSkKewoJcHJpbnRmKCItLS0gbG9va2luZyB1cCAn
JXMnIGZvciBmYW1pbHkgJXMgKCVpKVxuIiwgbmFtZSwgZmFtaWx5X25hbWUsIGZhbWlseSk7CgoJ
c3RydWN0IGFkZHJpbmZvIGhpbnRzOwoJbWVtc2V0KCZoaW50cywgMCwgc2l6ZW9mKGhpbnRzKSk7
CgloaW50cy5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOwoJaGludHMuYWlfZmxhZ3MgPSBBSV9O
VU1FUklDSE9TVDsKCWhpbnRzLmFpX2ZhbWlseSA9IGZhbWlseTsKCglzdHJ1Y3QgYWRkcmluZm8g
Kmhvc3RhZGRyID0gMDsKCWludCByZXMgPSBnZXRhZGRyaW5mbyhuYW1lLCAidGVsbmV0IiwgJmhp
bnRzLCAmaG9zdGFkZHIpOwoJaWYgKHJlcyA9PSBFQUlfTk9OQU1FKSB7CgkJcHJpbnRmKCJnZXRh
ZGRyaW5mbyguLi4pID0gRUFJX05PTkFNRSwgdHJ5aW5nIGFnYWluIHdpdGggQUlfQ0FOT05OQU1F
XG4iKTsKCQloaW50cy5haV9mbGFncyA9IEFJX0NBTk9OTkFNRTsKCQlyZXMgPSBnZXRhZGRyaW5m
byhuYW1lLCAidGVsbmV0IiwgJmhpbnRzLCAmaG9zdGFkZHIpOwoJfQoJaWYgKHJlcyA9PSBFQUlf
Tk9OQU1FKSB7CgkJcHJpbnRmKCJnZXRhZGRyaW5mbyguLi4pID0gRUFJX05PTkFNRSAuLi4gRkFJ
TFxuIik7Cgl9IGVsc2UgaWYgKHJlcykgewoJCXByaW50ZigiZ2V0YWRkcmluZm8oLi4uKSA9ICVp
IC4uLiBGQUlMXG4iLCByZXMpOwoJfSBlbHNlIHsKCQlwcmludGYoImdldGFkZHJpbmZvKC4uLikg
PSAlaVxuIiwgcmVzKTsKCgkJd2hpbGUgKGhvc3RhZGRyKSB7CgkJCWNoYXIgbmFtZVsxMDI0XSwg
c2VydmljZVsxMDI0XTsKCQkJcmVzID0gZ2V0bmFtZWluZm8oaG9zdGFkZHItPmFpX2FkZHIsIGhv
c3RhZGRyLT5haV9hZGRybGVuLAoJCQkJbmFtZSwgc2l6ZW9mKG5hbWUpLCBzZXJ2aWNlLCBzaXpl
b2Yoc2VydmljZSksCgkJCQlOSV9OVU1FUklDSE9TVCB8IE5JX05VTUVSSUNTRVJWKTsKCQkJcHJp
bnRmKCJnZXRuYW1laW5mbyguLi4pID0gJWlcbiIsIHJlcyk7CgkJCXByaW50ZigiXHRuYW1lID0g
JXNcbiIsIG5hbWUpOwoJCQlwcmludGYoIlx0c2VydmljZSA9ICVzXG4iLCBzZXJ2aWNlKTsKCQkJ
aG9zdGFkZHIgPSBob3N0YWRkci0+YWlfbmV4dDsKCQl9Cgl9CgoJZnJlZWFkZHJpbmZvKGhvc3Rh
ZGRyKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewoJY29uc3QgY2hhciAq
bmFtZSA9IChhcmdjID4gMSA/IGFyZ3ZbMV0gOiAibG9jYWxob3N0Iik7CgojZGVmaW5lIGRvaXQo
bmFtZSwgZmFtaWx5KSBkb2l0KG5hbWUsICNmYW1pbHksIGZhbWlseSkKCWRvaXQobmFtZSwgMCk7
Cglkb2l0KG5hbWUsIEFGX0lORVQpOwoJZG9pdChuYW1lLCBBRl9JTkVUNik7CgoJcHV0cygiIik7
CgoJcmV0dXJuIDA7Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>