<?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>12398</bug_id>
          
          <creation_ts>2011-01-13 20:03:00 +0000</creation_ts>
          <short_desc>getaddrinfo(&quot;127.0.0.1&quot;) and/or getaddrinfo(&quot;::1) may fail with AI_ADDRCONFIG</short_desc>
          <delta_ts>2013-02-24 22:11: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>network</component>
          <version>2.13</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tore Anderson">tore</reporter>
          <assigned_to name="Pavel Šimerda">psimerda</assigned_to>
          <cc>gaofeng</cc>
    
    <cc>nick.jones</cc>
    
    <cc>orion</cc>
    
    <cc>phattanon</cc>
    
    <cc>psimerda</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>46705</commentid>
    <comment_count>0</comment_count>
    <who name="Tore Anderson">tore</who>
    <bug_when>2011-01-13 20:03:04 +0000</bug_when>
    <thetext>getaddrinfo() will disregard the loopback addresses ::1 and 127.0.0.1 when attempting to figure out which address families are present on the host, when being called with the AI_ADDRCONFIG flag.

This makes a lot of sense when looking up an external hostname.  However, it makes very little sense when connecting to the hostname &quot;localhost&quot;.  I&apos;ve learned that the browser vendors will avoid using AI_ADDRCONFIG or do it while using workarounds for the localhost case, see for instance:

https://bugzilla.mozilla.org/show_bug.cgi?id=614526

Without such a workaround, connecting to a IPv4-only service listening on 127.0.0.1 using the hostname &quot;localhost&quot; will fail unless the machine also has external IPv4 connectivity.  Which is not what a user would expect, since the (lack of) external connectivity is irrelevant to the accessibility to the loopback interface.

Therefore, when looking up &quot;localhost&quot;, the loopback addresses ::1 and 127.0.0.1 should not be ignored by getaddrinfo() when using AI_ADDRCONFIG

Tore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56610</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-07-27 14:11:30 +0000</bug_when>
    <thetext>The same applies to *all* link-local IPv6 addresses as well as link-local IPv4 addresses.

The same applies for all alternative names for localhost:

For example on Fedora:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

People even use FQDNs for their localhost address to test their stuff without
network connection.

See also comments in bug 12377.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>56621</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-07-28 10:12:58 +0000</bug_when>
    <thetext>Currently with glibc-2.15-51.fc17.x86_64 I can reproduce it with:

  hints.ai_family = AF_INET6;
  hints.ai_flags = AI_ADDRCONFIG; // and optional AI_V4MAPPED

I can no longer reproduce with SSH (possibly because of some updates
that affect SSH&apos;s networking, i don&apos;t know).

My feeling is that we should *never* discard literal IP adresses
based on AI_ADDRCONFIG. At least not unless we check against
*family* together with *scope* but even then it&apos;s very doubtful
to go directly against user&apos;s input.

As for names like &apos;localhost&apos;, &apos;localhost4&apos; and various names you can
use for node-local and link-local addresses, I&apos;m strictly against trying
to enumerate them as you cannot guess all possible names. Would
you for example check the suffix &quot;.local&quot; and treat the result as a
link-local FQDN? But it may be a global address also.

I actually don&apos;t believe in any checks that work with the name and
not the address. When you have the address, you can check it against
several rules to guess (and usually know) the scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57547</commentid>
    <comment_count>3</comment_count>
      <attachid>6647</attachid>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-09-22 15:42:40 +0000</bug_when>
    <thetext>Created attachment 6647
a temporary fix to ignore the whole AI_ADDRCONFIG thing

Until this issue is resolved, I&apos;m building GLIBC with this patch to avoid problems with node-local and link-local networking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58680</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-11-20 23:13:20 +0000</bug_when>
    <thetext>By the way, I just learned that the current behavior is not mandated by POSIX. Thanks to Jeff Law for valuable information he provided:

http://pubs.opengroup.org/onlinepubs/9699919799/

If the AI_ADDRCONFIG flag is specified, IPv4 addresses shall be returned only if an IPv4 address is configured on the local system, [IP6] [Option Start]  and IPv6 addresses shall be returned only if an IPv6 address is configured on the local system. [Option End]

Jeff: It may also be the case that we need to involve the &quot;Austin Group&quot; if we need further clarification of the standard (link-local handling comes to mind).

My summary is:

Filtering of non-DNS addresses in getaddrinfo() has no real use
and it only causes problems. There&apos;s no reason to filter over the
mere existence of addresses. Filtering over global address existence
may only be desirable for global address resolution, which is DNS. But
that should be done by the DNS resolver that only asks for addresses
that make sense and only accepts addresses that it asks for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58682</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-11-20 23:32:57 +0000</bug_when>
    <thetext>Changed the comment. Currently, I&apos;m using the following patch to fix my
node-local IPv4/IPv6 networking (link-local networking is currently not
broken in Fedora since they removed the patch to also disregard link-local
addresses). I&apos;m proposing this patch as a temporary solution until this
s fixed properly with the following notes:

* It breaks POSIX1-2008 (which requires checking for any IPv4/IPv6 address)
* It breaks informational RFC 3493 (which requires the same but disregards the loopback interface)
* It ignores the older informational RFC 2553 (which requires the same as RFC 3494 but only for DNS lookups)

The POSIX1-2008, RFC 3493 and obsolete RFC 2553 are all effectively useless
but the obsolete one is closest to the truth. Whether a global IPv4 address,
a global IPv4 route, or a global IPv4 default gateway is the right sign of
global connectivity, is up to discussion.

I also changed the description of the bug to reflect the actual problem,
not one possible (maybe wrong, but at least POSIX-compliant) solution of that problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58683</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-11-20 23:36:30 +0000</bug_when>
    <thetext>Upstream bug report:

https://bugzilla.redhat.com/show_bug.cgi?id=721350</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58684</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-11-20 23:38:58 +0000</bug_when>
    <thetext>Another upstream bug report:

https://bugzilla.redhat.com/show_bug.cgi?id=808147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59128</commentid>
    <comment_count>8</comment_count>
      <attachid>6781</attachid>
    <who name="Tore Anderson">tore</who>
    <bug_when>2012-12-16 13:47:03 +0000</bug_when>
    <thetext>Created attachment 6781
Move AI_ADDRCONFIG into gaih_inet()

Attached patch moves AI_ADDCONFIG processing into gaih_inet(). This improves things by making it not apply to literal IP addresses. However, AI_ADDCONFIG will still be able to suppress results from both address families for things coming out of /etc/hosts like for example &quot;localhost&quot;. In order to prevent that I think we&apos;d need to move AI_ADDRCONFIG into _nss_dns_gethostbyname*(), which is beyond my programmings skills to implement I&apos;m afraid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59146</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2012-12-17 17:30:11 +0000</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created attachment 6781 [details]
&gt; Move AI_ADDRCONFIG into gaih_inet()
&gt; 
&gt; Attached patch moves AI_ADDCONFIG processing into gaih_inet(). This improves
&gt; things by making it not apply to literal IP addresses. However, AI_ADDCONFIG
&gt; will still be able to suppress results from both address families for things
&gt; coming out of /etc/hosts like for example &quot;localhost&quot;. In order to prevent that
&gt; I think we&apos;d need to move AI_ADDRCONFIG into _nss_dns_gethostbyname*(), which
&gt; is beyond my programmings skills to implement I&apos;m afraid.

I tested the patch and confirm that I don&apos;t see any regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59976</commentid>
    <comment_count>10</comment_count>
    <who name="Phattanon Duangdara">phattanon</who>
    <bug_when>2013-02-09 17:53:44 +0000</bug_when>
    <thetext>Can someone point out that this should also fixed this bug ?

http://sourceware.org/bugzilla/show_bug.cgi?id=14212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59977</commentid>
    <comment_count>11</comment_count>
    <who name="Pavel Šimerda">psimerda</who>
    <bug_when>2013-02-09 21:10:59 +0000</bug_when>
    <thetext>(In reply to comment #10)
&gt; Can someone point out that this should also fixed this bug ?
&gt; 
&gt; http://sourceware.org/bugzilla/show_bug.cgi?id=14212

This bug report is *not* related to the hosts nss plugin and is rather easy to fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6647</attachid>
            <date>2012-09-22 15:42:00 +0000</date>
            <delta_ts>2012-09-22 15:42:40 +0000</delta_ts>
            <desc>a temporary fix to ignore the whole AI_ADDRCONFIG thing</desc>
            <filename>glibc-ignore-addrconfig.patch</filename>
            <type>text/plain</type>
            <size>2145</size>
            <attacher name="Pavel Šimerda">psimerda</attacher>
            
              <data encoding="base64">Y29tbWl0IGZlZTdkMTY4OGFkMDM1ZTdlYTI0NjA5N2U3Y2VlOWYwZjhiZWY1OWIKQXV0aG9yOiBQ
YXZlbCDFoGltZXJkYSA8cHNpbWVyZGFAcmVkaGF0LmNvbT4KRGF0ZTogICBTYXQgU2VwIDIyIDE0
OjI5OjI5IDIwMTIgKzAyMDAKCiAgICBFWFBFUklNRU5UQUw6IGlnbm9yZSBBSV9BRERSQ09ORklH
IGluIGdldGFkZHJpbmZvKCkKICAgIAogICAgVGhpcyBzaG91bGQgZml4IHByb2JsZW1zIGdldGFk
ZHJpbmZvKCkgZm9yIG5vbi1nbG9iYWwgdXNlIGNhc2VzLiBJdAogICAgc2hvdWxkIG5vdyB3b3Jr
IGZvciB0aGUgZm9sbG93aW5nICdub2RlJyBuYW1lcyBldmVuIG9uIGhvc3RzIHdpdGhvdXQKICAg
IGdsb2JhbCBJUHY0IGFuZC9vciBJUHY2LgogICAgCiAgICAgIGdldGFkZHJpbmZvKCIxMjcuMC4w
LjEiLCAuLi4pCiAgICAgIGdldGFkZHJpbmZvKCI6OjEiLCAuLi4pCiAgICAgIGdldGFkZHJpbmZv
KCJsb2NhbGhvc3QiLCAuLi4pCiAgICAgIGdldGFkZHJpbmZvKCJsb2NhbGhvc3Q0IiwgLi4uKQog
ICAgICBnZXRhZGRyaW5mbygibG9jYWxob3N0NiIsIC4uLikKICAgICAgZ2V0YWRkcmluZm8oImZl
ODA6OjQ0YWI6NmZmZjpmZTc1OjRjMDQlZXRoMCIsIC4uLikKICAgIAogICAgVGhlIHByaWNlIGZv
ciB0aGlzIGlzIGxvc2luZyBBSV9BRERSQ09ORklHIGZ1bmNpb25hbGl0eS4gQnV0IHRoaXMKICAg
IGZ1bmNpb25hbGl0eSBzaG91bGQgYmUgb25seSB1c2VkIGZvciBETlMuCgpkaWZmIC0tZ2l0IGEv
c3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jIGIvc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5j
CmluZGV4IDA1ODgzYmQuLjUwM2Y2YTggMTAwNjQ0Ci0tLSBhL3N5c2RlcHMvcG9zaXgvZ2V0YWRk
cmluZm8uYworKysgYi9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMKQEAgLTI0MDMsMzYgKzI0
MDMsNiBAQCBnZXRhZGRyaW5mbyAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2Vydmlj
ZSwKICAgYm9vbCBzZWVuX2lwdjYgPSBmYWxzZTsKICAgYm9vbCBjaGVja19wZl9jYWxsZWQgPSBm
YWxzZTsKIAotICBpZiAoaGludHMtPmFpX2ZsYWdzICYgQUlfQUREUkNPTkZJRykKLSAgICB7Ci0g
ICAgICAvKiBXZSBtaWdodCBuZWVkIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgaW50ZXJmYWNlcyBh
cmUgYXZhaWxhYmxlLgotCSBBbHNvIGRldGVybWluZSB3aGV0aGVyIHdlIGhhdmUgSVB2NCBvciBJ
UHY2IGludGVyZmFjZXMgb3IgYm90aC4gIFdlCi0JIGNhbm5vdCBjYWNoZSB0aGUgcmVzdWx0cyBz
aW5jZSBuZXcgaW50ZXJmYWNlcyBjb3VsZCBiZSBhZGRlZCBhdAotCSBhbnkgdGltZS4gICovCi0g
ICAgICBfX2NoZWNrX3BmICgmc2Vlbl9pcHY0LCAmc2Vlbl9pcHY2LCAmaW42YWksICZpbjZhaWxl
bik7Ci0gICAgICBjaGVja19wZl9jYWxsZWQgPSB0cnVlOwotCi0gICAgICAvKiBOb3cgbWFrZSBh
IGRlY2lzaW9uIG9uIHdoYXQgd2UgcmV0dXJuLCBpZiBhbnl0aGluZy4gICovCi0gICAgICBpZiAo
aGludHMtPmFpX2ZhbWlseSA9PSBQRl9VTlNQRUMgJiYgKHNlZW5faXB2NCB8fCBzZWVuX2lwdjYp
KQotCXsKLQkgIC8qIElmIHdlIGhhdmVuJ3Qgc2VlbiBib3RoIElQdjQgYW5kIElQdjYgaW50ZXJm
YWNlcyB3ZSBjYW4KLQkgICAgIG5hcnJvdyBkb3duIHRoZSBzZWFyY2guICAqLwotCSAgaWYgKCgh
IHNlZW5faXB2NCB8fCAhIHNlZW5faXB2NikgJiYgKHNlZW5faXB2NCB8fCBzZWVuX2lwdjYpKQot
CSAgICB7Ci0JICAgICAgbG9jYWxfaGludHMgPSAqaGludHM7Ci0JICAgICAgbG9jYWxfaGludHMu
YWlfZmFtaWx5ID0gc2Vlbl9pcHY0ID8gUEZfSU5FVCA6IFBGX0lORVQ2OwotCSAgICAgIGhpbnRz
ID0gJmxvY2FsX2hpbnRzOwotCSAgICB9Ci0JfQotICAgICAgZWxzZSBpZiAoKGhpbnRzLT5haV9m
YW1pbHkgPT0gUEZfSU5FVCAmJiAhIHNlZW5faXB2NCkKLQkgICAgICAgfHwgKGhpbnRzLT5haV9m
YW1pbHkgPT0gUEZfSU5FVDYgJiYgISBzZWVuX2lwdjYpKQotCXsKLQkgIC8qIFdlIGNhbm5vdCBw
b3NzaWJseSByZXR1cm4gYSB2YWxpZCBhbnN3ZXIuICAqLwotCSAgX19mcmVlX2luNmFpIChpbjZh
aSk7Ci0JICByZXR1cm4gRUFJX05PTkFNRTsKLQl9Ci0gICAgfQotCiAgIGlmIChzZXJ2aWNlICYm
IHNlcnZpY2VbMF0pCiAgICAgewogICAgICAgY2hhciAqYzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6781</attachid>
            <date>2012-12-16 13:47:00 +0000</date>
            <delta_ts>2012-12-16 13:47:03 +0000</delta_ts>
            <desc>Move AI_ADDRCONFIG into gaih_inet()</desc>
            <filename>process-addrconfig-in_gaih_inet.patch</filename>
            <type>text/plain</type>
            <size>6105</size>
            <attacher name="Tore Anderson">tore</attacher>
            
              <data encoding="base64">ZGlmZiAtcnUgZ2xpYmMtMi4xNi45MC02N2NiZjlhMi5vcmlnL3N5c2RlcHMvcG9zaXgvZ2V0YWRk
cmluZm8uYyBnbGliYy0yLjE2LjkwLTY3Y2JmOWEyL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmluZm8u
YwotLS0gZ2xpYmMtMi4xNi45MC02N2NiZjlhMi5vcmlnL3N5c2RlcHMvcG9zaXgvZ2V0YWRkcmlu
Zm8uYwkyMDEyLTEyLTA3IDIxOjU1OjE5LjAwMDAwMDAwMCArMDAwMAorKysgZ2xpYmMtMi4xNi45
MC02N2NiZjlhMi9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMJMjAxMi0xMi0wOSAyMzoyNDo0
Ny42MTU0MTA5MDYgKzAwMDAKQEAgLTgyOSwxNCArODI5LDQ3IEBACiAJCX0KIAkgICAgfQogCisJ
ICAvKiBBSV9BRERSQ09ORklHIGRldGVybWluZXMgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHN1
cHByZXNzIGFueQorCSAgICogaG9zdG5hbWUgbG9va3Vwcy4gSWYgdGhlIGxvY2FsIGhvc3QgaGFz
IG9ubHkgSVB2NCBpbnRlcmZhY2VzLAorCSAgICogdGhlbiBzdXBwcmVzcyBsb29rdXBzIGZvciBJ
UHY2IGFkZHJlc3NlcywgYW5kIHZpY2UgdmVyc2E7IGlmCisJICAgKiB0aGUgbG9jYWwgaG9zdCBo
YXMgb25seSBJUHY2IGludGVyZmFjZXMsIHN1cHByZXNzIGFueSBsb29rdXBzCisJICAgKiBmb3Ig
SVB2NCBhZGRyZXNzZXMuLgorCSAgICogCisJICAgKiBMaW5rLWxvY2FsIElQdjYgYWRkcmVzc2Vz
IGFuZCBsb29wYmFjayBhZGRyZXNzZXMgb2YgZWl0aGVyCisJICAgKiBmYW1pbHkgYXJlIGlnbm9y
ZWQgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIG9yIG5vdCB0aGUgaG9zdCBoYXMKKwkgICAqIGFu
IGludGVyZmFjZSBvZiB0aGUgZ2l2ZW4gYWRkcmVzcyBmYW1pbHksIGNmLiBfX2NoZWNrX3BmKCku
CisJICAgKgorCSAgICogVGhpcyBsb2dpYyBpcyBvbmx5IGFwcGxpZWQgZm9yIEFGX1VOU1BFQy4g
SWYgdGhlIGNhbGxlcgorCSAgICogZXhwbGljaXRseSByZXF1ZXN0ZWQgYW4gYWRkcmVzcyBmYW1p
bHksIGdpdmUgaGltIHdoYXQgaGUgYXNrZWQKKwkgICAqIGZvci4KKwkgICAqCisJICAgKiBJZiB3
ZSBkaWRuJ3QgZmluZCBhbnkgaW50ZXJmYWNlcyBvZiBlaXRoZXIgYWRkcmVzcyBmYW1pbHksCisJ
ICAgKiB3ZSBpZ25vcmUgQUlfQUREUkNPTkZJRyBhbmQgcmV0dXJuIGFsbCBhdmFpbGFibGUgcmVz
dXRsdHMuICAqLworCSAgaW50IHN1cHByZXNzX2FmID0gMDsKKwkgIGlmIChyZXEtPmFpX2ZhbWls
eSA9PSBBRl9VTlNQRUMgJiYgcmVxLT5haV9mbGFncyAmIEFJX0FERFJDT05GSUcpCisJICAgIHsK
KwkgICAgICBzdHJ1Y3QgaW42YWRkcmluZm8gKmluNmFpID0gTlVMTDsKKwkgICAgICBzaXplX3Qg
aW42YWlsZW4gPSAwOworCSAgICAgIGJvb2wgc2Vlbl9pcHY0ID0gZmFsc2U7CisJICAgICAgYm9v
bCBzZWVuX2lwdjYgPSBmYWxzZTsKKwkgICAgICBfX2NoZWNrX3BmICgmc2Vlbl9pcHY0LCAmc2Vl
bl9pcHY2LCAmaW42YWksICZpbjZhaWxlbik7CisJICAgICAgX19mcmVlX2luNmFpIChpbjZhaSk7
CisKKwkgICAgICBpZihzZWVuX2lwdjQgJiYgIXNlZW5faXB2NikKKwkJICBzdXBwcmVzc19hZiA9
IEFGX0lORVQ2OworCSAgICAgIGVsc2UgaWYoc2Vlbl9pcHY2ICYmICFzZWVuX2lwdjQpCisJCSAg
c3VwcHJlc3NfYWYgPSBBRl9JTkVUOworCSAgICB9CisKIAkgIHdoaWxlICghbm9fbW9yZSkKIAkg
ICAgewogCSAgICAgIG5vX2RhdGEgPSAwOwogCSAgICAgIG5zc19nZXRob3N0YnluYW1lNF9yIGZj
dDQgPSBOVUxMOwogCiAJICAgICAgLyogZ2V0aG9zdGJ5bmFtZTRfciBzZW5kcyBvdXQgcGFyYWxs
ZWwgQSBhbmQgQUFBQSBxdWVyaWVzIGFuZAotCQkgaXMgdGh1cyBvbmx5IHN1aXRhYmxlIGZvciBQ
Rl9VTlNQRUMuICAqLwotCSAgICAgIGlmIChyZXEtPmFpX2ZhbWlseSA9PSBQRl9VTlNQRUMpCisJ
CSBpcyB0aHVzIG9ubHkgc3VpdGFibGUgZm9yIFBGX1VOU1BFQywgYW5kIG9ubHkgaWYgd2UncmUg
bm90CisJCSBzdXBwcmVzc2luZyBsb29rdXBzIGZvciBJUHY0IG9yIElQdjYgYWRkcmVzc2VzLiAg
Ki8KKwkgICAgICBpZiAocmVxLT5haV9mYW1pbHkgPT0gUEZfVU5TUEVDICYmICFzdXBwcmVzc19h
ZikKIAkJZmN0NCA9IF9fbnNzX2xvb2t1cF9mdW5jdGlvbiAobmlwLCAiZ2V0aG9zdGJ5bmFtZTRf
ciIpOwogCiAJICAgICAgaWYgKGZjdDQgIT0gTlVMTCkKQEAgLTk0MSwyMCArOTc0LDIyIEBACiAK
IAkJICBpZiAoZmN0ICE9IE5VTEwpCiAJCSAgICB7Ci0JCSAgICAgIGlmIChyZXEtPmFpX2ZhbWls
eSA9PSBBRl9JTkVUNgotCQkJICB8fCByZXEtPmFpX2ZhbWlseSA9PSBBRl9VTlNQRUMpCisJCSAg
ICAgIGlmICgocmVxLT5haV9mYW1pbHkgPT0gQUZfSU5FVDYKKwkJCSAgIHx8IHJlcS0+YWlfZmFt
aWx5ID09IEFGX1VOU1BFQykKKwkJCSAgJiYgc3VwcHJlc3NfYWYgIT0gQUZfSU5FVDYpCiAJCQl7
CiAJCQkgIGdldGhvc3RzIChBRl9JTkVUNiwgc3RydWN0IGluNl9hZGRyKTsKIAkJCSAgbm9faW5l
dDZfZGF0YSA9IG5vX2RhdGE7CiAJCQkgIGluZXQ2X3N0YXR1cyA9IHN0YXR1czsKIAkJCX0KLQkJ
ICAgICAgaWYgKHJlcS0+YWlfZmFtaWx5ID09IEFGX0lORVQKLQkJCSAgfHwgcmVxLT5haV9mYW1p
bHkgPT0gQUZfVU5TUEVDCi0JCQkgIHx8IChyZXEtPmFpX2ZhbWlseSA9PSBBRl9JTkVUNgotCQkJ
ICAgICAgJiYgKHJlcS0+YWlfZmxhZ3MgJiBBSV9WNE1BUFBFRCkKLQkJCSAgICAgIC8qIEF2b2lk
IGdlbmVyYXRpbmcgdGhlIG1hcHBlZCBhZGRyZXNzZXMgaWYgd2UKLQkJCQkga25vdyB3ZSBhcmUg
bm90IGdvaW5nIHRvIG5lZWQgdGhlbS4gICovCi0JCQkgICAgICAmJiAoKHJlcS0+YWlfZmxhZ3Mg
JiBBSV9BTEwpIHx8ICFnb3RfaXB2NikpKQorCQkgICAgICBpZiAoKHJlcS0+YWlfZmFtaWx5ID09
IEFGX0lORVQKKwkJCSAgIHx8IHJlcS0+YWlfZmFtaWx5ID09IEFGX1VOU1BFQworCQkJICAgfHwg
KHJlcS0+YWlfZmFtaWx5ID09IEFGX0lORVQ2CisJCQkgICAgICAgJiYgKHJlcS0+YWlfZmxhZ3Mg
JiBBSV9WNE1BUFBFRCkKKwkJCSAgICAgICAvKiBBdm9pZCBnZW5lcmF0aW5nIHRoZSBtYXBwZWQg
YWRkcmVzc2VzIGlmIHdlCisJCQkJICBrbm93IHdlIGFyZSBub3QgZ29pbmcgdG8gbmVlZCB0aGVt
LiAgKi8KKwkJCSAgICAgICAmJiAoKHJlcS0+YWlfZmxhZ3MgJiBBSV9BTEwpIHx8ICFnb3RfaXB2
NikpKQorCQkJICAmJiBzdXBwcmVzc19hZiAhPSBBRl9JTkVUKQogCQkJewogCQkJICBnZXRob3N0
cyAoQUZfSU5FVCwgc3RydWN0IGluX2FkZHIpOwogCkBAIC0yMzczLDcgKzI0MDgsNiBAQAogICBp
bnQgbnJlc3VsdHMgPSAwOwogICBzdHJ1Y3QgYWRkcmluZm8gKnAgPSBOVUxMOwogICBzdHJ1Y3Qg
Z2FpaF9zZXJ2aWNlIGdhaWhfc2VydmljZSwgKnBzZXJ2aWNlOwotICBzdHJ1Y3QgYWRkcmluZm8g
bG9jYWxfaGludHM7CiAKICAgaWYgKG5hbWUgIT0gTlVMTCAmJiBuYW1lWzBdID09ICcqJyAmJiBu
YW1lWzFdID09IDApCiAgICAgbmFtZSA9IE5VTEw7CkBAIC0yMzk5LDQyICsyNDMzLDYgQEAKICAg
aWYgKChoaW50cy0+YWlfZmxhZ3MgJiBBSV9DQU5PTk5BTUUpICYmIG5hbWUgPT0gTlVMTCkKICAg
ICByZXR1cm4gRUFJX0JBREZMQUdTOwogCi0gIHN0cnVjdCBpbjZhZGRyaW5mbyAqaW42YWkgPSBO
VUxMOwotICBzaXplX3QgaW42YWlsZW4gPSAwOwotICBib29sIHNlZW5faXB2NCA9IGZhbHNlOwot
ICBib29sIHNlZW5faXB2NiA9IGZhbHNlOwotICBib29sIGNoZWNrX3BmX2NhbGxlZCA9IGZhbHNl
OwotCi0gIGlmIChoaW50cy0+YWlfZmxhZ3MgJiBBSV9BRERSQ09ORklHKQotICAgIHsKLSAgICAg
IC8qIFdlIG1pZ2h0IG5lZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBpbnRlcmZhY2VzIGFyZSBh
dmFpbGFibGUuCi0JIEFsc28gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgaGF2ZSBJUHY0IG9yIElQdjYg
aW50ZXJmYWNlcyBvciBib3RoLiAgV2UKLQkgY2Fubm90IGNhY2hlIHRoZSByZXN1bHRzIHNpbmNl
IG5ldyBpbnRlcmZhY2VzIGNvdWxkIGJlIGFkZGVkIGF0Ci0JIGFueSB0aW1lLiAgKi8KLSAgICAg
IF9fY2hlY2tfcGYgKCZzZWVuX2lwdjQsICZzZWVuX2lwdjYsICZpbjZhaSwgJmluNmFpbGVuKTsK
LSAgICAgIGNoZWNrX3BmX2NhbGxlZCA9IHRydWU7Ci0KLSAgICAgIC8qIE5vdyBtYWtlIGEgZGVj
aXNpb24gb24gd2hhdCB3ZSByZXR1cm4sIGlmIGFueXRoaW5nLiAgKi8KLSAgICAgIGlmIChoaW50
cy0+YWlfZmFtaWx5ID09IFBGX1VOU1BFQyAmJiAoc2Vlbl9pcHY0IHx8IHNlZW5faXB2NikpCi0J
ewotCSAgLyogSWYgd2UgaGF2ZW4ndCBzZWVuIGJvdGggSVB2NCBhbmQgSVB2NiBpbnRlcmZhY2Vz
IHdlIGNhbgotCSAgICAgbmFycm93IGRvd24gdGhlIHNlYXJjaC4gICovCi0JICBpZiAoKCEgc2Vl
bl9pcHY0IHx8ICEgc2Vlbl9pcHY2KSAmJiAoc2Vlbl9pcHY0IHx8IHNlZW5faXB2NikpCi0JICAg
IHsKLQkgICAgICBsb2NhbF9oaW50cyA9ICpoaW50czsKLQkgICAgICBsb2NhbF9oaW50cy5haV9m
YW1pbHkgPSBzZWVuX2lwdjQgPyBQRl9JTkVUIDogUEZfSU5FVDY7Ci0JICAgICAgaGludHMgPSAm
bG9jYWxfaGludHM7Ci0JICAgIH0KLQl9Ci0gICAgICBlbHNlIGlmICgoaGludHMtPmFpX2ZhbWls
eSA9PSBQRl9JTkVUICYmICEgc2Vlbl9pcHY0KQotCSAgICAgICB8fCAoaGludHMtPmFpX2ZhbWls
eSA9PSBQRl9JTkVUNiAmJiAhIHNlZW5faXB2NikpCi0JewotCSAgLyogV2UgY2Fubm90IHBvc3Np
Ymx5IHJldHVybiBhIHZhbGlkIGFuc3dlci4gICovCi0JICBfX2ZyZWVfaW42YWkgKGluNmFpKTsK
LQkgIHJldHVybiBFQUlfTk9OQU1FOwotCX0KLSAgICB9Ci0KICAgaWYgKHNlcnZpY2UgJiYgc2Vy
dmljZVswXSkKICAgICB7CiAgICAgICBjaGFyICpjOwpAQCAtMjQ0MywxMCArMjQ0MSw3IEBACiAg
ICAgICBpZiAoKmMgIT0gJ1wwJykKIAl7CiAJICBpZiAoaGludHMtPmFpX2ZsYWdzICYgQUlfTlVN
RVJJQ1NFUlYpCi0JICAgIHsKLQkgICAgICBfX2ZyZWVfaW42YWkgKGluNmFpKTsKIAkgICAgICBy
ZXR1cm4gRUFJX05PTkFNRTsKLQkgICAgfQogCiAJICBnYWloX3NlcnZpY2UubnVtID0gLTE7CiAJ
fQpAQCAtMjQ2Niw3ICsyNDYxLDYgQEAKICAgICAgIGlmIChsYXN0X2kgIT0gMCkKIAl7CiAJICBm
cmVlYWRkcmluZm8gKHApOwotCSAgX19mcmVlX2luNmFpIChpbjZhaSk7CiAKIAkgIHJldHVybiAt
KGxhc3RfaSAmIEdBSUhfRUFJKTsKIAl9CkBAIC0yNDc3LDEwICsyNDcxLDcgQEAKIAl9CiAgICAg
fQogICBlbHNlCi0gICAgewotICAgICAgX19mcmVlX2luNmFpIChpbjZhaSk7CiAgICAgICByZXR1
cm4gRUFJX0ZBTUlMWTsKLSAgICB9CiAKICAgaWYgKG5hZGRycyA+IDEpCiAgICAgewpAQCAtMjQ5
NSw5ICsyNDg2LDEyIEBACiAgICAgICBzdHJ1Y3QgYWRkcmluZm8gKmxhc3QgPSBOVUxMOwogICAg
ICAgY2hhciAqY2Fub25uYW1lID0gTlVMTDsKIAotICAgICAgLyogTm93IHdlIGRlZmluaXRlbHkg
bmVlZCB0aGUgaW50ZXJmYWNlIGluZm9ybWF0aW9uLiAgKi8KLSAgICAgIGlmICghIGNoZWNrX3Bm
X2NhbGxlZCkKLQlfX2NoZWNrX3BmICgmc2Vlbl9pcHY0LCAmc2Vlbl9pcHY2LCAmaW42YWksICZp
bjZhaWxlbik7CisgICAgICAvKiBOb3cgd2UgbmVlZCB0aGUgaW50ZXJmYWNlIGluZm9ybWF0aW9u
LiAgKi8KKyAgICAgIHN0cnVjdCBpbjZhZGRyaW5mbyAqaW42YWkgPSBOVUxMOworICAgICAgc2l6
ZV90IGluNmFpbGVuID0gMDsKKyAgICAgIGJvb2wgc2Vlbl9pcHY0ID0gZmFsc2U7CisgICAgICBi
b29sIHNlZW5faXB2NiA9IGZhbHNlOworICAgICAgX19jaGVja19wZiAoJnNlZW5faXB2NCwgJnNl
ZW5faXB2NiwgJmluNmFpLCAmaW42YWlsZW4pOwogCiAgICAgICAvKiBJZiB3ZSBoYXZlIGluZm9y
bWF0aW9uIGFib3V0IGRlcHJlY2F0ZWQgYW5kIHRlbXBvcmFyeSBhZGRyZXNzZXMKIAkgc29ydCB0
aGUgYXJyYXkgbm93LiAgKi8KQEAgLTI2NjQsOSArMjY1OCw5IEBACiAKICAgICAgIC8qIEZpbGwg
aW4gdGhlIGNhbm9uaWNhbCBuYW1lIGludG8gdGhlIG5ldyBmaXJzdCBlbnRyeS4gICovCiAgICAg
ICBwLT5haV9jYW5vbm5hbWUgPSBjYW5vbm5hbWU7Ci0gICAgfQogCi0gIF9fZnJlZV9pbjZhaSAo
aW42YWkpOworICAgICAgX19mcmVlX2luNmFpIChpbjZhaSk7CisgICAgfQogCiAgIGlmIChwKQog
ICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>