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

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>167858</bug_id>
          
          <creation_ts>2017-02-05 11:18:12 -0800</creation_ts>
          <short_desc>The SigillCrashAnalyzer should play nicer with client code that may install its own SIGILL handler.</short_desc>
          <delta_ts>2017-02-07 12:03:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273402</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-05 11:18:12 -0800</bug_when>
    <thetext>Pondering the issue of how to make the SigillCrashAnalyzer place nice with client code that may install its own SIGILL handler as well as Saam&apos;s feedback at https://bugs.webkit.org/show_bug.cgi?id=167714#c22, I realized that there are improvements that we can make.  Here are the scenarios that may come up:

1. Client code did not install a SIGILL handler.

   - In this case, once we&apos;re done analyzing the SIGILL, we can just restore the default handler and return to let the OS do the default action i.e. capture a core dump.

2. Client code installed a SIGILL handler before JSC does.

   - In this case, we will see a non-null handler returned as the old signal handler when we install ours.
   - In our signal handler, after doing our crash analysis, we should invoke the client handler to let it do its work.
   - Our analyzer can also tell us if the SIGILL source is from JSC code in general (right now, this would just mean JIT code).
   - If the SIGILL source is not from JSC, we&apos;ll just let the client handler decided how to proceed.  We assume that the client handler will do the right thing (which is how the old behavior is before the SigillCrashAnalyzer was introduced).
   - If the SIGILL source is from JSC, then we know the SIGILL is an unrecoverable condition.  Hence, after we have given the client handler a chance to run, we should restore the default handler and let the OS capture a core dump.  This intentionally overrides whatever signal settings the client handler may have set.

3. Client code installed a SIGILL handler after JSC does.

   - In this case, we are dependent on the client handler to call our handler after it does its work.  This is compatible with the old behavior before SigillCrashAnalyzer was introduced.
   - In our signal handler, if we determine that the SIGILL source is from JSC code, then the SIGILL is not recoverable.  We should then restore the default handler and get a core dump.
   - If the SIGILL source is not from JSC, we check to see if there&apos;s a client handler installed after us.
     - If we detect a client handler installed after us, we defer judgement on what to do to the client handler.  Since the client handler did not uninstall itself, it must have considered itself to have recovered from the SIGILL.  We&apos;ll trust the client handler and take no restore action of our own (which is compatible with old code behavior).
     - If we detect no client handler and we have no previous handler, then we should restore the default handler and get a core dump.

Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273412</commentid>
    <comment_count>1</comment_count>
      <attachid>300672</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-05 12:03:10 -0800</bug_when>
    <thetext>Created attachment 300672
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273413</commentid>
    <comment_count>2</comment_count>
      <attachid>300673</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-05 12:06:07 -0800</bug_when>
    <thetext>Created attachment 300673
proposed patch

Updated a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274029</commentid>
    <comment_count>3</comment_count>
      <attachid>300814</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-07 09:33:02 -0800</bug_when>
    <thetext>Created attachment 300814
proposed patch: with ChangeLog typo fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274076</commentid>
    <comment_count>4</comment_count>
      <attachid>300814</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-02-07 11:33:22 -0800</bug_when>
    <thetext>Comment on attachment 300814
proposed patch: with ChangeLog typo fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=300814&amp;action=review

r=me

&gt; Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp:198
&gt; +

Nit - remove empty line.

&gt; Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp:270
&gt; -void SigillCrashAnalyzer::analyze(SignalContext&amp; context)
&gt; +auto SigillCrashAnalyzer::analyze(SignalContext&amp; context) -&gt; CrashSource

Why use a trailing return type declaration?   I think it clutters things since this function has a simple return type of CrashSource and is declared that way above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274084</commentid>
    <comment_count>5</comment_count>
      <attachid>300814</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-07 11:46:25 -0800</bug_when>
    <thetext>Comment on attachment 300814
proposed patch: with ChangeLog typo fix.

View in context: https://bugs.webkit.org/attachment.cgi?id=300814&amp;action=review

Thanks for the review.  My responses below.

&gt;&gt; Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp:198
&gt;&gt; +
&gt; 
&gt; Nit - remove empty line.

Why?  I intentionally added this blank line to visually separate the previous blob from the blob below.  I think white space is good.

&gt;&gt; Source/JavaScriptCore/tools/SigillCrashAnalyzer.cpp:270
&gt;&gt; +auto SigillCrashAnalyzer::analyze(SignalContext&amp; context) -&gt; CrashSource
&gt; 
&gt; Why use a trailing return type declaration?   I think it clutters things since this function has a simple return type of CrashSource and is declared that way above.

It&apos;s actually less clutter.  Here&apos;s what the alternative looks like:
    SigillCrashAnalyzer::CrashSource SigillCrashAnalyzer::analyze(SignalContext&amp; context)

Basically, this form allows us to forego qualifying class internal types in the return type.  This usage is already in use elsewhere in our code base.  I&apos;ll stick with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274091</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-02-07 12:03:57 -0800</bug_when>
    <thetext>I went ahead and removed the blank line.

Landed in r211828: &lt;http://trac.webkit.org/r211828&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300672</attachid>
            <date>2017-02-05 12:03:10 -0800</date>
            <delta_ts>2017-02-05 12:06:07 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-167858.patch</filename>
            <type>text/plain</type>
            <size>7797</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjExNjg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE3LTAyLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgU2lnaWxsQ3Jhc2hBbmFseXplciBzaG91bGQgcGxhY2UgbmljZXIgd2l0aCBjbGllbnQgY29k
ZSB0aGF0IG1heSBpbnN0YWxsIGl0cyBvd24gU0lHSUxMIGhhbmRsZXIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc4NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIZXJlIGFyZSB0aGUgc2NlbmFyaW9z
IHRoYXQgbWF5IGNvbWUgdXA6CisKKyAgICAgICAgMS4gQ2xpZW50IGNvZGUgZGlkIG5vdCBpbnN0
YWxsIGEgU0lHSUxMIGhhbmRsZXIuCisgICAgICAgICAgIC0gSW4gdGhpcyBjYXNlLCBvbmNlIHdl
J3JlIGRvbmUgYW5hbHl6aW5nIHRoZSBTSUdJTEwsIHdlIGNhbiBqdXN0IHJlc3RvcmUgdGhlCisg
ICAgICAgICAgICAgZGVmYXVsdCBoYW5kbGVyIGFuZCByZXR1cm4gdG8gbGV0IHRoZSBPUyBkbyB0
aGUgZGVmYXVsdCBhY3Rpb24gaS5lLiBjYXB0dXJlCisgICAgICAgICAgICAgYSBjb3JlIGR1bXAu
CisKKyAgICAgICAgMi4gQ2xpZW50IGNvZGUgaW5zdGFsbGVkIGEgU0lHSUxMIGhhbmRsZXIgYmVm
b3JlIEpTQyBkb2VzLgorICAgICAgICAgICAtIEluIHRoaXMgY2FzZSwgd2Ugd2lsbCBzZWUgYSBu
b24tbnVsbCBoYW5kbGVyIHJldHVybmVkIGFzIHRoZSBvbGQgc2lnbmFsCisgICAgICAgICAgICAg
aGFuZGxlciB3aGVuIHdlIGluc3RhbGwgb3Vycy4KKyAgICAgICAgICAgLSBJbiBvdXIgc2lnbmFs
IGhhbmRsZXIsIGFmdGVyIGRvaW5nIG91ciBjcmFzaCBhbmFseXNpcywgd2Ugc2hvdWxkIGludm9r
ZSB0aGUKKyAgICAgICAgICAgICBjbGllbnQgaGFuZGxlciB0byBsZXQgaXQgZG8gaXRzIHdvcmsu
CisgICAgICAgICAgIC0gT3VyIGFuYWx5emVyIGNhbiBhbHNvIHRlbGwgdXMgaWYgdGhlIFNJR0lM
TCBzb3VyY2UgaXMgZnJvbSBKU0MgY29kZSBpbgorICAgICAgICAgICAgIGdlbmVyYWwgKHJpZ2h0
IG5vdywgdGhpcyB3b3VsZCBqdXN0IG1lYW4gSklUIGNvZGUpLgorICAgICAgICAgICAtIElmIHRo
ZSBTSUdJTEwgc291cmNlIGlzIG5vdCBmcm9tIEpTQywgd2UnbGwganVzdCBsZXQgdGhlIGNsaWVu
dCBoYW5kbGVyCisgICAgICAgICAgICAgZGVjaWRlZCBob3cgdG8gcHJvY2VlZC4gIFdlIGFzc3Vt
ZSB0aGF0IHRoZSBjbGllbnQgaGFuZGxlciB3aWxsIGRvIHRoZSByaWdodAorICAgICAgICAgICAg
IHRoaW5nICh3aGljaCBpcyBob3cgdGhlIG9sZCBiZWhhdmlvciBpcyBiZWZvcmUgdGhlIFNpZ2ls
bENyYXNoQW5hbHl6ZXIgd2FzCisgICAgICAgICAgICAgaW50cm9kdWNlZCkuCisgICAgICAgICAg
IC0gSWYgdGhlIFNJR0lMTCBzb3VyY2UgaXMgZnJvbSBKU0MsIHRoZW4gd2Uga25vdyB0aGUgU0lH
SUxMIGlzIGFuIHVucmVjb3ZlcmFibGUKKyAgICAgICAgICAgICBjb25kaXRpb24uICBIZW5jZSwg
YWZ0ZXIgd2UgaGF2ZSBnaXZlbiB0aGUgY2xpZW50IGhhbmRsZXIgYSBjaGFuY2UgdG8gcnVuLAor
ICAgICAgICAgICAgIHdlIHNob3VsZCByZXN0b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYW5kIGxl
dCB0aGUgT1MgY2FwdHVyZSBhIGNvcmUgZHVtcC4KKyAgICAgICAgICAgICBUaGlzIGludGVudGlv
bmFsbHkgb3ZlcnJpZGVzIHdoYXRldmVyIHNpZ25hbCBzZXR0aW5ncyB0aGUgY2xpZW50IGhhbmRs
ZXIgbWF5CisgICAgICAgICAgICAgaGF2ZSBzZXQuCisKKyAgICAgICAgMy4gQ2xpZW50IGNvZGUg
aW5zdGFsbGVkIGEgU0lHSUxMIGhhbmRsZXIgYWZ0ZXIgSlNDIGRvZXMuCisgICAgICAgICAgIC0g
SW4gdGhpcyBjYXNlLCB3ZSBhcmUgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaGFuZGxlciB0byBj
YWxsIG91ciBoYW5kbGVyCisgICAgICAgICAgICAgYWZ0ZXIgaXQgZG9lcyBpdHMgd29yay4gIFRo
aXMgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBvbGQgYmVoYXZpb3IgYmVmb3JlCisgICAgICAgICAg
ICAgU2lnaWxsQ3Jhc2hBbmFseXplciB3YXMgaW50cm9kdWNlZC4KKyAgICAgICAgICAgLSBJbiBv
dXIgc2lnbmFsIGhhbmRsZXIsIGlmIHdlIGRldGVybWluZSB0aGF0IHRoZSBTSUdJTEwgc291cmNl
IGlzIGZyb20gSlNDCisgICAgICAgICAgICAgY29kZSwgdGhlbiB0aGUgU0lHSUxMIGlzIG5vdCBy
ZWNvdmVyYWJsZS4gIFdlIHNob3VsZCB0aGVuIHJlc3RvcmUgdGhlCisgICAgICAgICAgICAgZGVm
YXVsdCBoYW5kbGVyIGFuZCBnZXQgYSBjb3JlIGR1bXAuCisgICAgICAgICAgIC0gSWYgdGhlIFNJ
R0lMTCBzb3VyY2UgaXMgbm90IGZyb20gSlNDLCB3ZSBjaGVjayB0byBzZWUgaWYgdGhlcmUncyBh
IGNsaWVudAorICAgICAgICAgICAgIGhhbmRsZXIgaW5zdGFsbGVkIGFmdGVyIHVzLgorICAgICAg
ICAgICAtIElmIHdlIGRldGVjdCBhIGNsaWVudCBoYW5kbGVyIGluc3RhbGxlZCBhZnRlciB1cywg
d2UgZGVmZXIganVkZ2VtZW50IG9uIHdoYXQKKyAgICAgICAgICAgICB0byBkbyB0byB0aGUgY2xp
ZW50IGhhbmRsZXIuICBTaW5jZSB0aGUgY2xpZW50IGhhbmRsZXIgZGlkIG5vdCB1bmluc3RhbGwK
KyAgICAgICAgICAgICBpdHNlbGYsIGl0IG11c3QgaGF2ZSBjb25zaWRlcmVkIGl0c2VsZiB0byBo
YXZlIHJlY292ZXJlZCBmcm9tIHRoZSBTSUdJTEwuCisgICAgICAgICAgICAgV2UnbGwgdHJ1c3Qg
dGhlIGNsaWVudCBoYW5kbGVyIGFuZCB0YWtlIG5vIHJlc3RvcmUgYWN0aW9uIG9mIG91ciBvd24g
KHdoaWNoCisgICAgICAgICAgICAgaXMgY29tcGF0aWJsZSB3aXRoIG9sZCBjb2RlIGJlaGF2aW9y
KS4KKyAgICAgICAgICAgLSBJZiB3ZSBkZXRlY3Qgbm8gY2xpZW50IGhhbmRsZXIgYW5kIHdlIGhh
dmUgbm8gcHJldmlvdXMgaGFuZGxlciwgdGhlbiB3ZQorICAgICAgICAgICAgIHNob3VsZCByZXN0
b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYW5kIGdldCBhIGNvcmUgZHVtcC4KKworICAgICAgICAq
IHRvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpoYW5kbGVDcmFz
aCk6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAoSlNDOjpT
aWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXplKTogRGVsZXRlZC4KKwogMjAxNy0wMi0wNSAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIFZNSW5zcGVjdG9yIHNo
b3VsZCB1c2UgYW4gUkFJSSBMb2NrZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCShyZXZpc2lvbiAyMTE2ODQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDEzIEBAIHN0cnVjdCBTaWduYWxDb250ZXh0OwogY2xh
c3MgU2lnaWxsQ3Jhc2hBbmFseXplciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFNpZ2lsbENyYXNo
QW5hbHl6ZXImIGluc3RhbmNlKCk7Ci0gICAgdm9pZCBhbmFseXplKFNpZ25hbENvbnRleHQmKTsK
KworICAgIGVudW0gY2xhc3MgQ3Jhc2hTb3VyY2UgeworICAgICAgICBVbmtub3duLAorICAgICAg
ICBKYXZhU2NyaXB0Q29yZSwKKyAgICAgICAgT3RoZXIsCisgICAgfTsKKyAgICBDcmFzaFNvdXJj
ZSBhbmFseXplKFNpZ25hbENvbnRleHQmKTsKIAogcHJpdmF0ZToKICAgICBTaWdpbGxDcmFzaEFu
YWx5emVyKCkgeyB9CkBAIC0xNjUsMTUgKzE3MSw0OCBAQCBzdHJ1Y3QgU2lnbmFsQ29udGV4dCB7
CiAgICAgCiAjZW5kaWYKIAotc3RydWN0IHNpZ2FjdGlvbiBvbGRTaWdJbGxBY3Rpb247CitzdHJ1
Y3Qgc2lnYWN0aW9uIG9yaWdpbmFsU2lnSWxsQWN0aW9uOwogCi1zdGF0aWMgdm9pZCBoYW5kbGVD
cmFzaChpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVhcCkKK3N0YXRpYyB2b2lkIGhhbmRsZUNyYXNo
KGludCBzaWduYWxOdW1iZXIsIHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWFwKQogewotICAgIHNp
Z2FjdGlvbihTSUdJTEwsICZvbGRTaWdJbGxBY3Rpb24sIG51bGxwdHIpOwotCiAgICAgU2lnbmFs
Q29udGV4dCBjb250ZXh0KHN0YXRpY19jYXN0PHVjb250ZXh0X3QqPih1YXApLT51Y19tY29udGV4
dCk7CiAgICAgU2lnaWxsQ3Jhc2hBbmFseXplciYgYW5hbHl6ZXIgPSBTaWdpbGxDcmFzaEFuYWx5
emVyOjppbnN0YW5jZSgpOwotICAgIGFuYWx5emVyLmFuYWx5emUoY29udGV4dCk7CisgICAgYXV0
byBjcmFzaFNvdXJjZSA9IGFuYWx5emVyLmFuYWx5emUoY29udGV4dCk7CisKKyAgICBhdXRvIG9y
aWdpbmFsQWN0aW9uID0gb3JpZ2luYWxTaWdJbGxBY3Rpb24uc2Ffc2lnYWN0aW9uOworICAgIGlm
IChvcmlnaW5hbEFjdGlvbikgeworICAgICAgICAvLyBJdCBpcyBhbHdheXMgc2FmZSB0byBqdXN0
IGludm9rZSB0aGUgb3JpZ2luYWwgaGFuZGxlciB1c2luZyB0aGUgc2Ffc2lnYWN0aW9uIGZvcm0K
KyAgICAgICAgLy8gd2l0aG91dCBjaGVja2luZyBmb3IgdGhlIFNBX1NJR0lORk8gZmxhZy4gSWYg
dGhlIG9yaWdpbmFsIGhhbmRsZXIgaXMgb2YgdGhlCisgICAgICAgIC8vIHNhX2hhbmRsZXIgZm9y
bSwgaXQgd2lsbCBqdXN0IGlnbm9yZSB0aGUgMm5kIGFuZCAzcmQgYXJndW1lbnRzIHNpbmNlIHNh
X2hhbmRsZXIgaXMgYQorICAgICAgICAvLyBzdWJzZXQgb2Ygc2Ffc2lnYWN0aW9uLiBUaGlzIGlz
IHdoYXQgdGhlIG1hbiBwYWdlcyBzYXlzIHRoZSBPUyBkb2VzIGFueXdheS4KKyAgICAgICAgb3Jp
Z2luYWxBY3Rpb24oc2lnbmFsTnVtYmVyLCBpbmZvLCB1YXApOworICAgIH0KKworICAgIGlmIChj
cmFzaFNvdXJjZSA9PSBTaWdpbGxDcmFzaEFuYWx5emVyOjpDcmFzaFNvdXJjZTo6SmF2YVNjcmlw
dENvcmUpIHsKKyAgICAgICAgLy8gUmVzdG9yZSB0aGUgZGVmYXVsdCBoYW5kbGVyIHNvIHRoYXQg
d2UgY2FuIGdldCBhIGNvcmUgZHVtcC4KKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBkZWZhdWx0
QWN0aW9uOworICAgICAgICBkZWZhdWx0QWN0aW9uLnNhX2hhbmRsZXIgPSBTSUdfREZMOworICAg
ICAgICBzaWdmaWxsc2V0KCZkZWZhdWx0QWN0aW9uLnNhX21hc2spOworICAgICAgICBkZWZhdWx0
QWN0aW9uLnNhX2ZsYWdzID0gMDsKKyAgICAgICAgc2lnYWN0aW9uKFNJR0lMTCwgJmRlZmF1bHRB
Y3Rpb24sIG51bGxwdHIpOworCisgICAgfSBlbHNlIGlmICghb3JpZ2luYWxBY3Rpb24pIHsKKyAg
ICAgICAgLy8gUHJlLWVtcHRpdmVseSByZXN0b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYnV0IHdl
IG1heSByb2xsIGl0IGJhY2sgYmVsb3cuCisgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gY3VycmVu
dEFjdGlvbjsKKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBkZWZhdWx0QWN0aW9uOworICAgICAg
ICBkZWZhdWx0QWN0aW9uLnNhX2hhbmRsZXIgPSBTSUdfREZMOworICAgICAgICBzaWdmaWxsc2V0
KCZkZWZhdWx0QWN0aW9uLnNhX21hc2spOworICAgICAgICBkZWZhdWx0QWN0aW9uLnNhX2ZsYWdz
ID0gMDsKKyAgICAgICAgc2lnYWN0aW9uKFNJR0lMTCwgJmRlZmF1bHRBY3Rpb24sICZjdXJyZW50
QWN0aW9uKTsKKworICAgICAgICBpZiAoY3VycmVudEFjdGlvbi5zYV9zaWdhY3Rpb24gIT0gaGFu
ZGxlQ3Jhc2gpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSdzIGEgY2xp
ZW50IGhhbmRsZXIgaW5zdGFsbGVkIGFmdGVyIHVzLiBUaGlzIGFsc28gbWVhbnMKKyAgICAgICAg
ICAgIC8vIHRoYXQgdGhlIGNsaWVudCBoYW5kbGVyIHRoaW5rcyBpdCB3YXMgYWJsZSB0byByZWNv
dmVyIGZyb20gdGhlIFNJR0lMTCwgYW5kCisgICAgICAgICAgICAvLyBkaWQgbm90IHVuaW5zdGFs
bCBpdHNlbGYuIFdlIGNhbid0IGFyZ3VlIHdpdGggdGhpcyBiZWNhdXNlIHRoZSBjcmFzaCBpc24n
dAorICAgICAgICAgICAgLy8gZm9yIGEgSmF2YVNjcmlwdENvcmUgc291cmNlLiBIZW5jZSwgcmVz
dG9yZSB0aGUgY2xpZW50IGhhbmRsZXIgYW5kIGtlZXAgZ29pbmcuCisgICAgICAgICAgICBzaWdh
Y3Rpb24oU0lHSUxMLCAmY3VycmVudEFjdGlvbiwgbnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9
CiB9CiAKIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRsZXIoKQpAQCAtMTgzLDcgKzIyMiw3
IEBAIHN0YXRpYyB2b2lkIGluc3RhbGxDcmFzaEhhbmRsZXIoKQogICAgIGFjdGlvbi5zYV9zaWdh
Y3Rpb24gPSByZWludGVycHJldF9jYXN0PHZvaWQgKCopKGludCwgc2lnaW5mb190ICosIHZvaWQg
Kik+KGhhbmRsZUNyYXNoKTsKICAgICBzaWdmaWxsc2V0KCZhY3Rpb24uc2FfbWFzayk7CiAgICAg
YWN0aW9uLnNhX2ZsYWdzID0gU0FfU0lHSU5GTzsKLSAgICBzaWdhY3Rpb24oU0lHSUxMLCAmYWN0
aW9uLCAmb2xkU2lnSWxsQWN0aW9uKTsKKyAgICBzaWdhY3Rpb24oU0lHSUxMLCAmYWN0aW9uLCAm
b3JpZ2luYWxTaWdJbGxBY3Rpb24pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGFuZGxlQ3Jh
c2gpOwogI2VuZGlmCkBAIC0yMjcsOCArMjY2LDkgQEAgdm9pZCBlbmFibGVTaWdpbGxDcmFzaEFu
YWx5emVyKCkKICAgICBTaWdpbGxDcmFzaEFuYWx5emVyOjppbnN0YW5jZSgpOwogfQogCi12b2lk
IFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoU2lnbmFsQ29udGV4dCYgY29udGV4dCkKK2F1
dG8gU2lnaWxsQ3Jhc2hBbmFseXplcjo6YW5hbHl6ZShTaWduYWxDb250ZXh0JiBjb250ZXh0KSAt
PiBDcmFzaFNvdXJjZQogeworICAgIENyYXNoU291cmNlIGNyYXNoU291cmNlID0gQ3Jhc2hTb3Vy
Y2U6OlVua25vd247CiAgICAgbG9nKCJCRUdJTiBTSUdJTEwgYW5hbHlzaXMiKTsKIAogICAgIFsm
XSAoKSB7CkBAIC0yNTcsOSArMjk3LDExIEBAIHZvaWQgU2lnaWxsQ3Jhc2hBbmFseXplcjo6YW5h
bHl6ZShTaWduYWwKICAgICAgICAgfQogICAgICAgICBpZiAoIWlzSW5KSVRNZW1vcnkudmFsdWUo
KSkgewogICAgICAgICAgICAgbG9nKCJwYyAlcCBpcyBOT1QgaW4gdmFsaWQgSklUIGV4ZWN1dGFi
bGUgbWVtb3J5IiwgcGMpOworICAgICAgICAgICAgY3Jhc2hTb3VyY2UgPSBDcmFzaFNvdXJjZTo6
T3RoZXI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgbG9nKCJwYyAl
cCBpcyBpbiB2YWxpZCBKSVQgZXhlY3V0YWJsZSBtZW1vcnkiLCBwYyk7CisgICAgICAgIGNyYXNo
U291cmNlID0gQ3Jhc2hTb3VyY2U6OkphdmFTY3JpcHRDb3JlOwogCiAjaWYgQ1BVKEFSTTY0KQog
ICAgICAgICBzaXplX3QgcGNBc1NpemUgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4ocGMpOwpA
QCAtMjk0LDYgKzMzNiw3IEBAIHZvaWQgU2lnaWxsQ3Jhc2hBbmFseXplcjo6YW5hbHl6ZShTaWdu
YWwKICAgICB9ICgpOwogCiAgICAgbG9nKCJFTkQgU0lHSUxMIGFuYWx5c2lzIik7CisgICAgcmV0
dXJuIGNyYXNoU291cmNlOwogfQogCiB2b2lkIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmR1bXBDb2Rl
QmxvY2soQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHZvaWQqIG1hY2hpbmVQQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300673</attachid>
            <date>2017-02-05 12:06:07 -0800</date>
            <delta_ts>2017-02-07 09:33:02 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>bug-167858.patch</filename>
            <type>text/plain</type>
            <size>7826</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjExNjg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE3LTAyLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgU2lnaWxsQ3Jhc2hBbmFseXplciBzaG91bGQgcGxhY2UgbmljZXIgd2l0aCBjbGllbnQgY29k
ZSB0aGF0IG1heSBpbnN0YWxsIGl0cyBvd24gU0lHSUxMIGhhbmRsZXIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc4NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIZXJlIGFyZSB0aGUgc2NlbmFyaW9z
IHRoYXQgbWF5IGNvbWUgdXA6CisKKyAgICAgICAgMS4gQ2xpZW50IGNvZGUgZGlkIG5vdCBpbnN0
YWxsIGEgU0lHSUxMIGhhbmRsZXIuCisgICAgICAgICAgIC0gSW4gdGhpcyBjYXNlLCBvbmNlIHdl
J3JlIGRvbmUgYW5hbHl6aW5nIHRoZSBTSUdJTEwsIHdlIGNhbiBqdXN0IHJlc3RvcmUgdGhlCisg
ICAgICAgICAgICAgZGVmYXVsdCBoYW5kbGVyIGFuZCByZXR1cm4gdG8gbGV0IHRoZSBPUyBkbyB0
aGUgZGVmYXVsdCBhY3Rpb24gaS5lLiBjYXB0dXJlCisgICAgICAgICAgICAgYSBjb3JlIGR1bXAu
CisKKyAgICAgICAgMi4gQ2xpZW50IGNvZGUgaW5zdGFsbGVkIGEgU0lHSUxMIGhhbmRsZXIgYmVm
b3JlIEpTQyBkb2VzLgorICAgICAgICAgICAtIEluIHRoaXMgY2FzZSwgd2Ugd2lsbCBzZWUgYSBu
b24tbnVsbCBoYW5kbGVyIHJldHVybmVkIGFzIHRoZSBvbGQgc2lnbmFsCisgICAgICAgICAgICAg
aGFuZGxlciB3aGVuIHdlIGluc3RhbGwgb3Vycy4KKyAgICAgICAgICAgLSBJbiBvdXIgc2lnbmFs
IGhhbmRsZXIsIGFmdGVyIGRvaW5nIG91ciBjcmFzaCBhbmFseXNpcywgd2Ugc2hvdWxkIGludm9r
ZSB0aGUKKyAgICAgICAgICAgICBjbGllbnQgaGFuZGxlciB0byBsZXQgaXQgZG8gaXRzIHdvcmsu
CisgICAgICAgICAgIC0gT3VyIGFuYWx5emVyIGNhbiBhbHNvIHRlbGwgdXMgaWYgdGhlIFNJR0lM
TCBzb3VyY2UgaXMgZnJvbSBKU0MgY29kZSBpbgorICAgICAgICAgICAgIGdlbmVyYWwgKHJpZ2h0
IG5vdywgdGhpcyB3b3VsZCBqdXN0IG1lYW4gSklUIGNvZGUpLgorICAgICAgICAgICAtIElmIHRo
ZSBTSUdJTEwgc291cmNlIGlzIG5vdCBmcm9tIEpTQywgd2UnbGwganVzdCBsZXQgdGhlIGNsaWVu
dCBoYW5kbGVyCisgICAgICAgICAgICAgZGVjaWRlZCBob3cgdG8gcHJvY2VlZC4gIFdlIGFzc3Vt
ZSB0aGF0IHRoZSBjbGllbnQgaGFuZGxlciB3aWxsIGRvIHRoZSByaWdodAorICAgICAgICAgICAg
IHRoaW5nICh3aGljaCBpcyBob3cgdGhlIG9sZCBiZWhhdmlvciBpcyBiZWZvcmUgdGhlIFNpZ2ls
bENyYXNoQW5hbHl6ZXIgd2FzCisgICAgICAgICAgICAgaW50cm9kdWNlZCkuCisgICAgICAgICAg
IC0gSWYgdGhlIFNJR0lMTCBzb3VyY2UgaXMgZnJvbSBKU0MsIHRoZW4gd2Uga25vdyB0aGUgU0lH
SUxMIGlzIGFuIHVucmVjb3ZlcmFibGUKKyAgICAgICAgICAgICBjb25kaXRpb24uICBIZW5jZSwg
YWZ0ZXIgd2UgaGF2ZSBnaXZlbiB0aGUgY2xpZW50IGhhbmRsZXIgYSBjaGFuY2UgdG8gcnVuLAor
ICAgICAgICAgICAgIHdlIHNob3VsZCByZXN0b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYW5kIGxl
dCB0aGUgT1MgY2FwdHVyZSBhIGNvcmUgZHVtcC4KKyAgICAgICAgICAgICBUaGlzIGludGVudGlv
bmFsbHkgb3ZlcnJpZGVzIHdoYXRldmVyIHNpZ25hbCBzZXR0aW5ncyB0aGUgY2xpZW50IGhhbmRs
ZXIgbWF5CisgICAgICAgICAgICAgaGF2ZSBzZXQuCisKKyAgICAgICAgMy4gQ2xpZW50IGNvZGUg
aW5zdGFsbGVkIGEgU0lHSUxMIGhhbmRsZXIgYWZ0ZXIgSlNDIGRvZXMuCisgICAgICAgICAgIC0g
SW4gdGhpcyBjYXNlLCB3ZSBhcmUgZGVwZW5kZW50IG9uIHRoZSBjbGllbnQgaGFuZGxlciB0byBj
YWxsIG91ciBoYW5kbGVyCisgICAgICAgICAgICAgYWZ0ZXIgaXQgZG9lcyBpdHMgd29yay4gIFRo
aXMgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBvbGQgYmVoYXZpb3IgYmVmb3JlCisgICAgICAgICAg
ICAgU2lnaWxsQ3Jhc2hBbmFseXplciB3YXMgaW50cm9kdWNlZC4KKyAgICAgICAgICAgLSBJbiBv
dXIgc2lnbmFsIGhhbmRsZXIsIGlmIHdlIGRldGVybWluZSB0aGF0IHRoZSBTSUdJTEwgc291cmNl
IGlzIGZyb20gSlNDCisgICAgICAgICAgICAgY29kZSwgdGhlbiB0aGUgU0lHSUxMIGlzIG5vdCBy
ZWNvdmVyYWJsZS4gIFdlIHNob3VsZCB0aGVuIHJlc3RvcmUgdGhlCisgICAgICAgICAgICAgZGVm
YXVsdCBoYW5kbGVyIGFuZCBnZXQgYSBjb3JlIGR1bXAuCisgICAgICAgICAgIC0gSWYgdGhlIFNJ
R0lMTCBzb3VyY2UgaXMgbm90IGZyb20gSlNDLCB3ZSBjaGVjayB0byBzZWUgaWYgdGhlcmUncyBh
IGNsaWVudAorICAgICAgICAgICAgIGhhbmRsZXIgaW5zdGFsbGVkIGFmdGVyIHVzLgorICAgICAg
ICAgICAtIElmIHdlIGRldGVjdCBhIGNsaWVudCBoYW5kbGVyIGluc3RhbGxlZCBhZnRlciB1cywg
d2UgZGVmZXIganVkZ2VtZW50IG9uIHdoYXQKKyAgICAgICAgICAgICB0byBkbyB0byB0aGUgY2xp
ZW50IGhhbmRsZXIuICBTaW5jZSB0aGUgY2xpZW50IGhhbmRsZXIgZGlkIG5vdCB1bmluc3RhbGwK
KyAgICAgICAgICAgICBpdHNlbGYsIGl0IG11c3QgaGF2ZSBjb25zaWRlcmVkIGl0c2VsZiB0byBo
YXZlIHJlY292ZXJlZCBmcm9tIHRoZSBTSUdJTEwuCisgICAgICAgICAgICAgV2UnbGwgdHJ1c3Qg
dGhlIGNsaWVudCBoYW5kbGVyIGFuZCB0YWtlIG5vIHJlc3RvcmUgYWN0aW9uIG9mIG91ciBvd24g
KHdoaWNoCisgICAgICAgICAgICAgaXMgY29tcGF0aWJsZSB3aXRoIG9sZCBjb2RlIGJlaGF2aW9y
KS4KKyAgICAgICAgICAgLSBJZiB3ZSBkZXRlY3Qgbm8gY2xpZW50IGhhbmRsZXIgYW5kIHdlIGhh
dmUgbm8gcHJldmlvdXMgaGFuZGxlciwgdGhlbiB3ZQorICAgICAgICAgICAgIHNob3VsZCByZXN0
b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYW5kIGdldCBhIGNvcmUgZHVtcC4KKworICAgICAgICAq
IHRvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwOgorICAgICAgICAoSlNDOjpoYW5kbGVDcmFz
aCk6CisgICAgICAgIChKU0M6Omluc3RhbGxDcmFzaEhhbmRsZXIpOgorICAgICAgICAoSlNDOjpT
aWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXplKTogRGVsZXRlZC4KKwogMjAxNy0wMi0wNSAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIFZNSW5zcGVjdG9yIHNo
b3VsZCB1c2UgYW4gUkFJSSBMb2NrZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9v
bHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rvb2xzL1NpZ2lsbENyYXNoQW5hbHl6ZXIuY3BwCShyZXZpc2lvbiAyMTE2ODQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDEzIEBAIHN0cnVjdCBTaWduYWxDb250ZXh0OwogY2xh
c3MgU2lnaWxsQ3Jhc2hBbmFseXplciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFNpZ2lsbENyYXNo
QW5hbHl6ZXImIGluc3RhbmNlKCk7Ci0gICAgdm9pZCBhbmFseXplKFNpZ25hbENvbnRleHQmKTsK
KworICAgIGVudW0gY2xhc3MgQ3Jhc2hTb3VyY2UgeworICAgICAgICBVbmtub3duLAorICAgICAg
ICBKYXZhU2NyaXB0Q29yZSwKKyAgICAgICAgT3RoZXIsCisgICAgfTsKKyAgICBDcmFzaFNvdXJj
ZSBhbmFseXplKFNpZ25hbENvbnRleHQmKTsKIAogcHJpdmF0ZToKICAgICBTaWdpbGxDcmFzaEFu
YWx5emVyKCkgeyB9CkBAIC0xNjUsMTUgKzE3MSw0OSBAQCBzdHJ1Y3QgU2lnbmFsQ29udGV4dCB7
CiAgICAgCiAjZW5kaWYKIAotc3RydWN0IHNpZ2FjdGlvbiBvbGRTaWdJbGxBY3Rpb247CitzdHJ1
Y3Qgc2lnYWN0aW9uIG9yaWdpbmFsU2lnSWxsQWN0aW9uOwogCi1zdGF0aWMgdm9pZCBoYW5kbGVD
cmFzaChpbnQsIHNpZ2luZm9fdCosIHZvaWQqIHVhcCkKK3N0YXRpYyB2b2lkIGhhbmRsZUNyYXNo
KGludCBzaWduYWxOdW1iZXIsIHNpZ2luZm9fdCogaW5mbywgdm9pZCogdWFwKQogewotICAgIHNp
Z2FjdGlvbihTSUdJTEwsICZvbGRTaWdJbGxBY3Rpb24sIG51bGxwdHIpOwotCiAgICAgU2lnbmFs
Q29udGV4dCBjb250ZXh0KHN0YXRpY19jYXN0PHVjb250ZXh0X3QqPih1YXApLT51Y19tY29udGV4
dCk7CiAgICAgU2lnaWxsQ3Jhc2hBbmFseXplciYgYW5hbHl6ZXIgPSBTaWdpbGxDcmFzaEFuYWx5
emVyOjppbnN0YW5jZSgpOwotICAgIGFuYWx5emVyLmFuYWx5emUoY29udGV4dCk7CisgICAgYXV0
byBjcmFzaFNvdXJjZSA9IGFuYWx5emVyLmFuYWx5emUoY29udGV4dCk7CisKKyAgICBhdXRvIG9y
aWdpbmFsQWN0aW9uID0gb3JpZ2luYWxTaWdJbGxBY3Rpb24uc2Ffc2lnYWN0aW9uOworICAgIGlm
IChvcmlnaW5hbEFjdGlvbikgeworICAgICAgICAvLyBJdCBpcyBhbHdheXMgc2FmZSB0byBqdXN0
IGludm9rZSB0aGUgb3JpZ2luYWwgaGFuZGxlciB1c2luZyB0aGUgc2Ffc2lnYWN0aW9uIGZvcm0K
KyAgICAgICAgLy8gd2l0aG91dCBjaGVja2luZyBmb3IgdGhlIFNBX1NJR0lORk8gZmxhZy4gSWYg
dGhlIG9yaWdpbmFsIGhhbmRsZXIgaXMgb2YgdGhlCisgICAgICAgIC8vIHNhX2hhbmRsZXIgZm9y
bSwgaXQgd2lsbCBqdXN0IGlnbm9yZSB0aGUgMm5kIGFuZCAzcmQgYXJndW1lbnRzIHNpbmNlIHNh
X2hhbmRsZXIgaXMgYQorICAgICAgICAvLyBzdWJzZXQgb2Ygc2Ffc2lnYWN0aW9uLiBUaGlzIGlz
IHdoYXQgdGhlIG1hbiBwYWdlcyBzYXlzIHRoZSBPUyBkb2VzIGFueXdheS4KKyAgICAgICAgb3Jp
Z2luYWxBY3Rpb24oc2lnbmFsTnVtYmVyLCBpbmZvLCB1YXApOworICAgIH0KKworICAgIGlmIChj
cmFzaFNvdXJjZSA9PSBTaWdpbGxDcmFzaEFuYWx5emVyOjpDcmFzaFNvdXJjZTo6SmF2YVNjcmlw
dENvcmUpIHsKKyAgICAgICAgLy8gUmVzdG9yZSB0aGUgZGVmYXVsdCBoYW5kbGVyIHNvIHRoYXQg
d2UgY2FuIGdldCBhIGNvcmUgZHVtcC4KKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBkZWZhdWx0
QWN0aW9uOworICAgICAgICBkZWZhdWx0QWN0aW9uLnNhX2hhbmRsZXIgPSBTSUdfREZMOworICAg
ICAgICBzaWdmaWxsc2V0KCZkZWZhdWx0QWN0aW9uLnNhX21hc2spOworICAgICAgICBkZWZhdWx0
QWN0aW9uLnNhX2ZsYWdzID0gMDsKKyAgICAgICAgc2lnYWN0aW9uKFNJR0lMTCwgJmRlZmF1bHRB
Y3Rpb24sIG51bGxwdHIpOworCisgICAgfSBlbHNlIGlmICghb3JpZ2luYWxBY3Rpb24pIHsKKyAg
ICAgICAgLy8gUHJlLWVtcHRpdmVseSByZXN0b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgYnV0IHdl
IG1heSByb2xsIGl0IGJhY2sgYmVsb3cuCisgICAgICAgIHN0cnVjdCBzaWdhY3Rpb24gY3VycmVu
dEFjdGlvbjsKKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBkZWZhdWx0QWN0aW9uOworICAgICAg
ICBkZWZhdWx0QWN0aW9uLnNhX2hhbmRsZXIgPSBTSUdfREZMOworICAgICAgICBzaWdmaWxsc2V0
KCZkZWZhdWx0QWN0aW9uLnNhX21hc2spOworICAgICAgICBkZWZhdWx0QWN0aW9uLnNhX2ZsYWdz
ID0gMDsKKyAgICAgICAgc2lnYWN0aW9uKFNJR0lMTCwgJmRlZmF1bHRBY3Rpb24sICZjdXJyZW50
QWN0aW9uKTsKKworICAgICAgICBpZiAoY3VycmVudEFjdGlvbi5zYV9zaWdhY3Rpb24gIT0gaGFu
ZGxlQ3Jhc2gpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgbWVhbnMgdGhhdCB0aGVyZSdzIGEgY2xp
ZW50IGhhbmRsZXIgaW5zdGFsbGVkIGFmdGVyIHVzLiBUaGlzIGFsc28gbWVhbnMKKyAgICAgICAg
ICAgIC8vIHRoYXQgdGhlIGNsaWVudCBoYW5kbGVyIHRoaW5rcyBpdCB3YXMgYWJsZSB0byByZWNv
dmVyIGZyb20gdGhlIFNJR0lMTCwgYW5kCisgICAgICAgICAgICAvLyBkaWQgbm90IHVuaW5zdGFs
bCBpdHNlbGYuIFdlIGNhbid0IGFyZ3VlIHdpdGggdGhpcyBiZWNhdXNlIHRoZSBjcmFzaCBpc24n
dAorICAgICAgICAgICAgLy8ga25vd24gdG8gYmUgZnJvbSBhIEphdmFTY3JpcHRDb3JlIHNvdXJj
ZS4gSGVuY2UsIHJlc3RvcmUgdGhlIGNsaWVudCBoYW5kbGVyCisgICAgICAgICAgICAvLyBhbmQg
a2VlcCBnb2luZy4KKyAgICAgICAgICAgIHNpZ2FjdGlvbihTSUdJTEwsICZjdXJyZW50QWN0aW9u
LCBudWxscHRyKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogc3RhdGljIHZvaWQgaW5zdGFsbENy
YXNoSGFuZGxlcigpCkBAIC0xODMsNyArMjIzLDcgQEAgc3RhdGljIHZvaWQgaW5zdGFsbENyYXNo
SGFuZGxlcigpCiAgICAgYWN0aW9uLnNhX3NpZ2FjdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCAoKikoaW50LCBzaWdpbmZvX3QgKiwgdm9pZCAqKT4oaGFuZGxlQ3Jhc2gpOwogICAgIHNpZ2Zp
bGxzZXQoJmFjdGlvbi5zYV9tYXNrKTsKICAgICBhY3Rpb24uc2FfZmxhZ3MgPSBTQV9TSUdJTkZP
OwotICAgIHNpZ2FjdGlvbihTSUdJTEwsICZhY3Rpb24sICZvbGRTaWdJbGxBY3Rpb24pOworICAg
IHNpZ2FjdGlvbihTSUdJTEwsICZhY3Rpb24sICZvcmlnaW5hbFNpZ0lsbEFjdGlvbik7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShoYW5kbGVDcmFzaCk7CiAjZW5kaWYKQEAgLTIyNyw4ICsyNjcs
OSBAQCB2b2lkIGVuYWJsZVNpZ2lsbENyYXNoQW5hbHl6ZXIoKQogICAgIFNpZ2lsbENyYXNoQW5h
bHl6ZXI6Omluc3RhbmNlKCk7CiB9CiAKLXZvaWQgU2lnaWxsQ3Jhc2hBbmFseXplcjo6YW5hbHl6
ZShTaWduYWxDb250ZXh0JiBjb250ZXh0KQorYXV0byBTaWdpbGxDcmFzaEFuYWx5emVyOjphbmFs
eXplKFNpZ25hbENvbnRleHQmIGNvbnRleHQpIC0+IENyYXNoU291cmNlCiB7CisgICAgQ3Jhc2hT
b3VyY2UgY3Jhc2hTb3VyY2UgPSBDcmFzaFNvdXJjZTo6VW5rbm93bjsKICAgICBsb2coIkJFR0lO
IFNJR0lMTCBhbmFseXNpcyIpOwogCiAgICAgWyZdICgpIHsKQEAgLTI1Nyw5ICsyOTgsMTEgQEAg
dm9pZCBTaWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXplKFNpZ25hbAogICAgICAgICB9CiAgICAg
ICAgIGlmICghaXNJbkpJVE1lbW9yeS52YWx1ZSgpKSB7CiAgICAgICAgICAgICBsb2coInBjICVw
IGlzIE5PVCBpbiB2YWxpZCBKSVQgZXhlY3V0YWJsZSBtZW1vcnkiLCBwYyk7CisgICAgICAgICAg
ICBjcmFzaFNvdXJjZSA9IENyYXNoU291cmNlOjpPdGhlcjsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBsb2coInBjICVwIGlzIGluIHZhbGlkIEpJVCBleGVjdXRhYmxl
IG1lbW9yeSIsIHBjKTsKKyAgICAgICAgY3Jhc2hTb3VyY2UgPSBDcmFzaFNvdXJjZTo6SmF2YVNj
cmlwdENvcmU7CiAKICNpZiBDUFUoQVJNNjQpCiAgICAgICAgIHNpemVfdCBwY0FzU2l6ZSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihwYyk7CkBAIC0yOTQsNiArMzM3LDcgQEAgdm9pZCBTaWdp
bGxDcmFzaEFuYWx5emVyOjphbmFseXplKFNpZ25hbAogICAgIH0gKCk7CiAKICAgICBsb2coIkVO
RCBTSUdJTEwgYW5hbHlzaXMiKTsKKyAgICByZXR1cm4gY3Jhc2hTb3VyY2U7CiB9CiAKIHZvaWQg
U2lnaWxsQ3Jhc2hBbmFseXplcjo6ZHVtcENvZGVCbG9jayhDb2RlQmxvY2sqIGNvZGVCbG9jaywg
dm9pZCogbWFjaGluZVBDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300814</attachid>
            <date>2017-02-07 09:33:02 -0800</date>
            <delta_ts>2017-02-07 11:33:22 -0800</delta_ts>
            <desc>proposed patch: with ChangeLog typo fix.</desc>
            <filename>bug-167858.patch</filename>
            <type>text/plain</type>
            <size>7825</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjExNjg0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE3LTAyLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBU
aGUgU2lnaWxsQ3Jhc2hBbmFseXplciBzaG91bGQgcGxheSBuaWNlciB3aXRoIGNsaWVudCBjb2Rl
IHRoYXQgbWF5IGluc3RhbGwgaXRzIG93biBTSUdJTEwgaGFuZGxlci4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Nzg1OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhlcmUgYXJlIHRoZSBzY2VuYXJpb3Mg
dGhhdCBtYXkgY29tZSB1cDoKKworICAgICAgICAxLiBDbGllbnQgY29kZSBkaWQgbm90IGluc3Rh
bGwgYSBTSUdJTEwgaGFuZGxlci4KKyAgICAgICAgICAgLSBJbiB0aGlzIGNhc2UsIG9uY2Ugd2Un
cmUgZG9uZSBhbmFseXppbmcgdGhlIFNJR0lMTCwgd2UgY2FuIGp1c3QgcmVzdG9yZSB0aGUKKyAg
ICAgICAgICAgICBkZWZhdWx0IGhhbmRsZXIgYW5kIHJldHVybiB0byBsZXQgdGhlIE9TIGRvIHRo
ZSBkZWZhdWx0IGFjdGlvbiBpLmUuIGNhcHR1cmUKKyAgICAgICAgICAgICBhIGNvcmUgZHVtcC4K
KworICAgICAgICAyLiBDbGllbnQgY29kZSBpbnN0YWxsZWQgYSBTSUdJTEwgaGFuZGxlciBiZWZv
cmUgSlNDIGRvZXMuCisgICAgICAgICAgIC0gSW4gdGhpcyBjYXNlLCB3ZSB3aWxsIHNlZSBhIG5v
bi1udWxsIGhhbmRsZXIgcmV0dXJuZWQgYXMgdGhlIG9sZCBzaWduYWwKKyAgICAgICAgICAgICBo
YW5kbGVyIHdoZW4gd2UgaW5zdGFsbCBvdXJzLgorICAgICAgICAgICAtIEluIG91ciBzaWduYWwg
aGFuZGxlciwgYWZ0ZXIgZG9pbmcgb3VyIGNyYXNoIGFuYWx5c2lzLCB3ZSBzaG91bGQgaW52b2tl
IHRoZQorICAgICAgICAgICAgIGNsaWVudCBoYW5kbGVyIHRvIGxldCBpdCBkbyBpdHMgd29yay4K
KyAgICAgICAgICAgLSBPdXIgYW5hbHl6ZXIgY2FuIGFsc28gdGVsbCB1cyBpZiB0aGUgU0lHSUxM
IHNvdXJjZSBpcyBmcm9tIEpTQyBjb2RlIGluCisgICAgICAgICAgICAgZ2VuZXJhbCAocmlnaHQg
bm93LCB0aGlzIHdvdWxkIGp1c3QgbWVhbiBKSVQgY29kZSkuCisgICAgICAgICAgIC0gSWYgdGhl
IFNJR0lMTCBzb3VyY2UgaXMgbm90IGZyb20gSlNDLCB3ZSdsbCBqdXN0IGxldCB0aGUgY2xpZW50
IGhhbmRsZXIKKyAgICAgICAgICAgICBkZWNpZGVkIGhvdyB0byBwcm9jZWVkLiAgV2UgYXNzdW1l
IHRoYXQgdGhlIGNsaWVudCBoYW5kbGVyIHdpbGwgZG8gdGhlIHJpZ2h0CisgICAgICAgICAgICAg
dGhpbmcgKHdoaWNoIGlzIGhvdyB0aGUgb2xkIGJlaGF2aW9yIGlzIGJlZm9yZSB0aGUgU2lnaWxs
Q3Jhc2hBbmFseXplciB3YXMKKyAgICAgICAgICAgICBpbnRyb2R1Y2VkKS4KKyAgICAgICAgICAg
LSBJZiB0aGUgU0lHSUxMIHNvdXJjZSBpcyBmcm9tIEpTQywgdGhlbiB3ZSBrbm93IHRoZSBTSUdJ
TEwgaXMgYW4gdW5yZWNvdmVyYWJsZQorICAgICAgICAgICAgIGNvbmRpdGlvbi4gIEhlbmNlLCBh
ZnRlciB3ZSBoYXZlIGdpdmVuIHRoZSBjbGllbnQgaGFuZGxlciBhIGNoYW5jZSB0byBydW4sCisg
ICAgICAgICAgICAgd2Ugc2hvdWxkIHJlc3RvcmUgdGhlIGRlZmF1bHQgaGFuZGxlciBhbmQgbGV0
IHRoZSBPUyBjYXB0dXJlIGEgY29yZSBkdW1wLgorICAgICAgICAgICAgIFRoaXMgaW50ZW50aW9u
YWxseSBvdmVycmlkZXMgd2hhdGV2ZXIgc2lnbmFsIHNldHRpbmdzIHRoZSBjbGllbnQgaGFuZGxl
ciBtYXkKKyAgICAgICAgICAgICBoYXZlIHNldC4KKworICAgICAgICAzLiBDbGllbnQgY29kZSBp
bnN0YWxsZWQgYSBTSUdJTEwgaGFuZGxlciBhZnRlciBKU0MgZG9lcy4KKyAgICAgICAgICAgLSBJ
biB0aGlzIGNhc2UsIHdlIGFyZSBkZXBlbmRlbnQgb24gdGhlIGNsaWVudCBoYW5kbGVyIHRvIGNh
bGwgb3VyIGhhbmRsZXIKKyAgICAgICAgICAgICBhZnRlciBpdCBkb2VzIGl0cyB3b3JrLiAgVGhp
cyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIG9sZCBiZWhhdmlvciBiZWZvcmUKKyAgICAgICAgICAg
ICBTaWdpbGxDcmFzaEFuYWx5emVyIHdhcyBpbnRyb2R1Y2VkLgorICAgICAgICAgICAtIEluIG91
ciBzaWduYWwgaGFuZGxlciwgaWYgd2UgZGV0ZXJtaW5lIHRoYXQgdGhlIFNJR0lMTCBzb3VyY2Ug
aXMgZnJvbSBKU0MKKyAgICAgICAgICAgICBjb2RlLCB0aGVuIHRoZSBTSUdJTEwgaXMgbm90IHJl
Y292ZXJhYmxlLiAgV2Ugc2hvdWxkIHRoZW4gcmVzdG9yZSB0aGUKKyAgICAgICAgICAgICBkZWZh
dWx0IGhhbmRsZXIgYW5kIGdldCBhIGNvcmUgZHVtcC4KKyAgICAgICAgICAgLSBJZiB0aGUgU0lH
SUxMIHNvdXJjZSBpcyBub3QgZnJvbSBKU0MsIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGEg
Y2xpZW50CisgICAgICAgICAgICAgaGFuZGxlciBpbnN0YWxsZWQgYWZ0ZXIgdXMuCisgICAgICAg
ICAgIC0gSWYgd2UgZGV0ZWN0IGEgY2xpZW50IGhhbmRsZXIgaW5zdGFsbGVkIGFmdGVyIHVzLCB3
ZSBkZWZlciBqdWRnZW1lbnQgb24gd2hhdAorICAgICAgICAgICAgIHRvIGRvIHRvIHRoZSBjbGll
bnQgaGFuZGxlci4gIFNpbmNlIHRoZSBjbGllbnQgaGFuZGxlciBkaWQgbm90IHVuaW5zdGFsbAor
ICAgICAgICAgICAgIGl0c2VsZiwgaXQgbXVzdCBoYXZlIGNvbnNpZGVyZWQgaXRzZWxmIHRvIGhh
dmUgcmVjb3ZlcmVkIGZyb20gdGhlIFNJR0lMTC4KKyAgICAgICAgICAgICBXZSdsbCB0cnVzdCB0
aGUgY2xpZW50IGhhbmRsZXIgYW5kIHRha2Ugbm8gcmVzdG9yZSBhY3Rpb24gb2Ygb3VyIG93biAo
d2hpY2gKKyAgICAgICAgICAgICBpcyBjb21wYXRpYmxlIHdpdGggb2xkIGNvZGUgYmVoYXZpb3Ip
LgorICAgICAgICAgICAtIElmIHdlIGRldGVjdCBubyBjbGllbnQgaGFuZGxlciBhbmQgd2UgaGF2
ZSBubyBwcmV2aW91cyBoYW5kbGVyLCB0aGVuIHdlCisgICAgICAgICAgICAgc2hvdWxkIHJlc3Rv
cmUgdGhlIGRlZmF1bHQgaGFuZGxlciBhbmQgZ2V0IGEgY29yZSBkdW1wLgorCisgICAgICAgICog
dG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHA6CisgICAgICAgIChKU0M6OmhhbmRsZUNyYXNo
KToKKyAgICAgICAgKEpTQzo6aW5zdGFsbENyYXNoSGFuZGxlcik6CisgICAgICAgIChKU0M6OlNp
Z2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUpOiBEZWxldGVkLgorCiAyMDE3LTAyLTA1ICBNYXJr
IExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgVk1JbnNwZWN0b3Igc2hv
dWxkIHVzZSBhbiBSQUlJIExvY2tlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29s
cy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvU2lnaWxsQ3Jhc2hBbmFseXplci5jcHAJKHJldmlzaW9uIDIxMTY4NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9TaWdpbGxDcmFzaEFuYWx5emVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNyArNDcsMTMgQEAgc3RydWN0IFNpZ25hbENvbnRleHQ7CiBjbGFz
cyBTaWdpbGxDcmFzaEFuYWx5emVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgU2lnaWxsQ3Jhc2hB
bmFseXplciYgaW5zdGFuY2UoKTsKLSAgICB2b2lkIGFuYWx5emUoU2lnbmFsQ29udGV4dCYpOwor
CisgICAgZW51bSBjbGFzcyBDcmFzaFNvdXJjZSB7CisgICAgICAgIFVua25vd24sCisgICAgICAg
IEphdmFTY3JpcHRDb3JlLAorICAgICAgICBPdGhlciwKKyAgICB9OworICAgIENyYXNoU291cmNl
IGFuYWx5emUoU2lnbmFsQ29udGV4dCYpOwogCiBwcml2YXRlOgogICAgIFNpZ2lsbENyYXNoQW5h
bHl6ZXIoKSB7IH0KQEAgLTE2NSwxNSArMTcxLDQ5IEBAIHN0cnVjdCBTaWduYWxDb250ZXh0IHsK
ICAgICAKICNlbmRpZgogCi1zdHJ1Y3Qgc2lnYWN0aW9uIG9sZFNpZ0lsbEFjdGlvbjsKK3N0cnVj
dCBzaWdhY3Rpb24gb3JpZ2luYWxTaWdJbGxBY3Rpb247CiAKLXN0YXRpYyB2b2lkIGhhbmRsZUNy
YXNoKGludCwgc2lnaW5mb190Kiwgdm9pZCogdWFwKQorc3RhdGljIHZvaWQgaGFuZGxlQ3Jhc2go
aW50IHNpZ25hbE51bWJlciwgc2lnaW5mb190KiBpbmZvLCB2b2lkKiB1YXApCiB7Ci0gICAgc2ln
YWN0aW9uKFNJR0lMTCwgJm9sZFNpZ0lsbEFjdGlvbiwgbnVsbHB0cik7Ci0KICAgICBTaWduYWxD
b250ZXh0IGNvbnRleHQoc3RhdGljX2Nhc3Q8dWNvbnRleHRfdCo+KHVhcCktPnVjX21jb250ZXh0
KTsKICAgICBTaWdpbGxDcmFzaEFuYWx5emVyJiBhbmFseXplciA9IFNpZ2lsbENyYXNoQW5hbHl6
ZXI6Omluc3RhbmNlKCk7Ci0gICAgYW5hbHl6ZXIuYW5hbHl6ZShjb250ZXh0KTsKKyAgICBhdXRv
IGNyYXNoU291cmNlID0gYW5hbHl6ZXIuYW5hbHl6ZShjb250ZXh0KTsKKworICAgIGF1dG8gb3Jp
Z2luYWxBY3Rpb24gPSBvcmlnaW5hbFNpZ0lsbEFjdGlvbi5zYV9zaWdhY3Rpb247CisgICAgaWYg
KG9yaWdpbmFsQWN0aW9uKSB7CisgICAgICAgIC8vIEl0IGlzIGFsd2F5cyBzYWZlIHRvIGp1c3Qg
aW52b2tlIHRoZSBvcmlnaW5hbCBoYW5kbGVyIHVzaW5nIHRoZSBzYV9zaWdhY3Rpb24gZm9ybQor
ICAgICAgICAvLyB3aXRob3V0IGNoZWNraW5nIGZvciB0aGUgU0FfU0lHSU5GTyBmbGFnLiBJZiB0
aGUgb3JpZ2luYWwgaGFuZGxlciBpcyBvZiB0aGUKKyAgICAgICAgLy8gc2FfaGFuZGxlciBmb3Jt
LCBpdCB3aWxsIGp1c3QgaWdub3JlIHRoZSAybmQgYW5kIDNyZCBhcmd1bWVudHMgc2luY2Ugc2Ff
aGFuZGxlciBpcyBhCisgICAgICAgIC8vIHN1YnNldCBvZiBzYV9zaWdhY3Rpb24uIFRoaXMgaXMg
d2hhdCB0aGUgbWFuIHBhZ2VzIHNheXMgdGhlIE9TIGRvZXMgYW55d2F5LgorICAgICAgICBvcmln
aW5hbEFjdGlvbihzaWduYWxOdW1iZXIsIGluZm8sIHVhcCk7CisgICAgfQorCisgICAgaWYgKGNy
YXNoU291cmNlID09IFNpZ2lsbENyYXNoQW5hbHl6ZXI6OkNyYXNoU291cmNlOjpKYXZhU2NyaXB0
Q29yZSkgeworICAgICAgICAvLyBSZXN0b3JlIHRoZSBkZWZhdWx0IGhhbmRsZXIgc28gdGhhdCB3
ZSBjYW4gZ2V0IGEgY29yZSBkdW1wLgorICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGRlZmF1bHRB
Y3Rpb247CisgICAgICAgIGRlZmF1bHRBY3Rpb24uc2FfaGFuZGxlciA9IFNJR19ERkw7CisgICAg
ICAgIHNpZ2ZpbGxzZXQoJmRlZmF1bHRBY3Rpb24uc2FfbWFzayk7CisgICAgICAgIGRlZmF1bHRB
Y3Rpb24uc2FfZmxhZ3MgPSAwOworICAgICAgICBzaWdhY3Rpb24oU0lHSUxMLCAmZGVmYXVsdEFj
dGlvbiwgbnVsbHB0cik7CisKKyAgICB9IGVsc2UgaWYgKCFvcmlnaW5hbEFjdGlvbikgeworICAg
ICAgICAvLyBQcmUtZW1wdGl2ZWx5IHJlc3RvcmUgdGhlIGRlZmF1bHQgaGFuZGxlciBidXQgd2Ug
bWF5IHJvbGwgaXQgYmFjayBiZWxvdy4KKyAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiBjdXJyZW50
QWN0aW9uOworICAgICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGRlZmF1bHRBY3Rpb247CisgICAgICAg
IGRlZmF1bHRBY3Rpb24uc2FfaGFuZGxlciA9IFNJR19ERkw7CisgICAgICAgIHNpZ2ZpbGxzZXQo
JmRlZmF1bHRBY3Rpb24uc2FfbWFzayk7CisgICAgICAgIGRlZmF1bHRBY3Rpb24uc2FfZmxhZ3Mg
PSAwOworICAgICAgICBzaWdhY3Rpb24oU0lHSUxMLCAmZGVmYXVsdEFjdGlvbiwgJmN1cnJlbnRB
Y3Rpb24pOworCisgICAgICAgIGlmIChjdXJyZW50QWN0aW9uLnNhX3NpZ2FjdGlvbiAhPSBoYW5k
bGVDcmFzaCkgeworICAgICAgICAgICAgLy8gVGhpcyBtZWFucyB0aGF0IHRoZXJlJ3MgYSBjbGll
bnQgaGFuZGxlciBpbnN0YWxsZWQgYWZ0ZXIgdXMuIFRoaXMgYWxzbyBtZWFucworICAgICAgICAg
ICAgLy8gdGhhdCB0aGUgY2xpZW50IGhhbmRsZXIgdGhpbmtzIGl0IHdhcyBhYmxlIHRvIHJlY292
ZXIgZnJvbSB0aGUgU0lHSUxMLCBhbmQKKyAgICAgICAgICAgIC8vIGRpZCBub3QgdW5pbnN0YWxs
IGl0c2VsZi4gV2UgY2FuJ3QgYXJndWUgd2l0aCB0aGlzIGJlY2F1c2UgdGhlIGNyYXNoIGlzbid0
CisgICAgICAgICAgICAvLyBrbm93biB0byBiZSBmcm9tIGEgSmF2YVNjcmlwdENvcmUgc291cmNl
LiBIZW5jZSwgcmVzdG9yZSB0aGUgY2xpZW50IGhhbmRsZXIKKyAgICAgICAgICAgIC8vIGFuZCBr
ZWVwIGdvaW5nLgorICAgICAgICAgICAgc2lnYWN0aW9uKFNJR0lMTCwgJmN1cnJlbnRBY3Rpb24s
IG51bGxwdHIpOworICAgICAgICB9CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBpbnN0YWxsQ3Jh
c2hIYW5kbGVyKCkKQEAgLTE4Myw3ICsyMjMsNyBAQCBzdGF0aWMgdm9pZCBpbnN0YWxsQ3Jhc2hI
YW5kbGVyKCkKICAgICBhY3Rpb24uc2Ffc2lnYWN0aW9uID0gcmVpbnRlcnByZXRfY2FzdDx2b2lk
ICgqKShpbnQsIHNpZ2luZm9fdCAqLCB2b2lkICopPihoYW5kbGVDcmFzaCk7CiAgICAgc2lnZmls
bHNldCgmYWN0aW9uLnNhX21hc2spOwogICAgIGFjdGlvbi5zYV9mbGFncyA9IFNBX1NJR0lORk87
Ci0gICAgc2lnYWN0aW9uKFNJR0lMTCwgJmFjdGlvbiwgJm9sZFNpZ0lsbEFjdGlvbik7CisgICAg
c2lnYWN0aW9uKFNJR0lMTCwgJmFjdGlvbiwgJm9yaWdpbmFsU2lnSWxsQWN0aW9uKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZUNyYXNoKTsKICNlbmRpZgpAQCAtMjI3LDggKzI2Nyw5
IEBAIHZvaWQgZW5hYmxlU2lnaWxsQ3Jhc2hBbmFseXplcigpCiAgICAgU2lnaWxsQ3Jhc2hBbmFs
eXplcjo6aW5zdGFuY2UoKTsKIH0KIAotdm9pZCBTaWdpbGxDcmFzaEFuYWx5emVyOjphbmFseXpl
KFNpZ25hbENvbnRleHQmIGNvbnRleHQpCithdXRvIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5
emUoU2lnbmFsQ29udGV4dCYgY29udGV4dCkgLT4gQ3Jhc2hTb3VyY2UKIHsKKyAgICBDcmFzaFNv
dXJjZSBjcmFzaFNvdXJjZSA9IENyYXNoU291cmNlOjpVbmtub3duOwogICAgIGxvZygiQkVHSU4g
U0lHSUxMIGFuYWx5c2lzIik7CiAKICAgICBbJl0gKCkgewpAQCAtMjU3LDkgKzI5OCwxMSBAQCB2
b2lkIFNpZ2lsbENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoU2lnbmFsCiAgICAgICAgIH0KICAgICAg
ICAgaWYgKCFpc0luSklUTWVtb3J5LnZhbHVlKCkpIHsKICAgICAgICAgICAgIGxvZygicGMgJXAg
aXMgTk9UIGluIHZhbGlkIEpJVCBleGVjdXRhYmxlIG1lbW9yeSIsIHBjKTsKKyAgICAgICAgICAg
IGNyYXNoU291cmNlID0gQ3Jhc2hTb3VyY2U6Ok90aGVyOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIGxvZygicGMgJXAgaXMgaW4gdmFsaWQgSklUIGV4ZWN1dGFibGUg
bWVtb3J5IiwgcGMpOworICAgICAgICBjcmFzaFNvdXJjZSA9IENyYXNoU291cmNlOjpKYXZhU2Ny
aXB0Q29yZTsKIAogI2lmIENQVShBUk02NCkKICAgICAgICAgc2l6ZV90IHBjQXNTaXplID0gcmVp
bnRlcnByZXRfY2FzdDxzaXplX3Q+KHBjKTsKQEAgLTI5NCw2ICszMzcsNyBAQCB2b2lkIFNpZ2ls
bENyYXNoQW5hbHl6ZXI6OmFuYWx5emUoU2lnbmFsCiAgICAgfSAoKTsKIAogICAgIGxvZygiRU5E
IFNJR0lMTCBhbmFseXNpcyIpOworICAgIHJldHVybiBjcmFzaFNvdXJjZTsKIH0KIAogdm9pZCBT
aWdpbGxDcmFzaEFuYWx5emVyOjpkdW1wQ29kZUJsb2NrKENvZGVCbG9jayogY29kZUJsb2NrLCB2
b2lkKiBtYWNoaW5lUEMpCg==
</data>
<flag name="review"
          id="322675"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>