<?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>144924</bug_id>
          
          <creation_ts>2015-05-12 12:41:58 -0700</creation_ts>
          <short_desc>Windows: Cannot use HANDLE from GetCurrentThread() to get the CONTEXT of another thread</short_desc>
          <delta_ts>2019-09-25 09:41:27 -0700</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>528+ (Nightly 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144925</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>computertechreviews19</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094234</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 12:41:58 -0700</bug_when>
    <thetext>The present stack scanning code in the Windows port is expecting that the GetCurrentThread() API will provide a unique HANDLE for each thread.  The code then saves and later uses that HANDLE with GetThreadContext() to get the runtime state of the target thread from the GC thread.  According to https://msdn.microsoft.com/en-us/library/windows/desktop/ms683182(v=vs.85).aspx, GetCurrentThread() does not provide this unique HANDLE that we expect:

&quot;The function cannot be used by one thread to create a handle that can be used by other threads to refer to the first thread. The handle is always interpreted as referring to the thread that is using it. A thread can create a &quot;real&quot; handle to itself that can be used by other threads, or inherited by other processes, by specifying the pseudo handle as the source handle in a call to the DuplicateHandle function.”

As a result of this, GetCurrentThread() always returns the same HANDLE value, and we end up never scanning the stacks of other threads because we wrongly think that they are all equal (in identity) to the scanning thread.  This, in turn, results in crashes due objects that are incorrectly collected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094243</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 12:54:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/18736465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094244</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-05-12 12:55:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/20922230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094284</commentid>
    <comment_count>3</comment_count>
      <attachid>252987</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 14:48:14 -0700</bug_when>
    <thetext>Created attachment 252987
the patch.

Uploading the patch for testing.  Not ready for review yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094293</commentid>
    <comment_count>4</comment_count>
      <attachid>252991</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 15:11:26 -0700</bug_when>
    <thetext>Created attachment 252991
patch 2: fixed Windows build problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094340</commentid>
    <comment_count>5</comment_count>
      <attachid>253001</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 18:27:03 -0700</bug_when>
    <thetext>Created attachment 253001
patch 3: Fixed a ChangeLog comment.

It&apos;s ready for review now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094341</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 18:27:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/20922230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094342</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 18:27:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/18736465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094352</commentid>
    <comment_count>8</comment_count>
      <attachid>253001</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-05-12 18:45:43 -0700</bug_when>
    <thetext>Comment on attachment 253001
patch 3: Fixed a ChangeLog comment.

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

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +            handle as the source handle in a call to the DuplicateHandle function.â

non-ASCII character</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094357</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-12 18:49:45 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r184229: &lt;http://trac.webkit.org/r184229&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094481</commentid>
    <comment_count>10</comment_count>
      <attachid>253001</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-05-13 10:22:34 -0700</bug_when>
    <thetext>Comment on attachment 253001
patch 3: Fixed a ChangeLog comment.

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

&gt; Source/JavaScriptCore/heap/MachineStackMarker.cpp:246
&gt; +#if OS(WINDOWS)
&gt; +    HANDLE platformThreadHandle;
&gt; +#endif

Should we change the type of PlatformThread in WTF? Might other uses of PlatformThread have this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094494</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-05-13 11:04:09 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 253001 [details]
&gt; patch 3: Fixed a ChangeLog comment.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253001&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/MachineStackMarker.cpp:246
&gt; &gt; +#if OS(WINDOWS)
&gt; &gt; +    HANDLE platformThreadHandle;
&gt; &gt; +#endif
&gt; 
&gt; Should we change the type of PlatformThread in WTF? Might other uses of
&gt; PlatformThread have this bug?

I just did a grep throughout Source and didn’t see any references to any PlatformThread  other than in MachineStackMarker.  In WTF, there’s a PlatformThreadSpecificKey, but that’s a different mechanism.

I also grep’ed for uses of the problematic GetCurrentThread(), and the only other use of it is in WTF/wtf/CurrentTime.cpp, and it’s using it correctly.

So, I think there’s no outstanding issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252987</attachid>
            <date>2015-05-12 14:48:14 -0700</date>
            <delta_ts>2015-05-12 15:11:26 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-144924.patch</filename>
            <type>text/plain</type>
            <size>5456</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MjIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE1LTA1LTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBX
aW5kb3dzOiBDYW5ub3QgdXNlIEhBTkRMRSBmcm9tIEdldEN1cnJlbnRUaHJlYWQoKSB0byBnZXQg
dGhlIENPTlRFWFQgb2YgYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJlc2VudCBzdGFjayBzY2FubmluZyBjb2RlIGlu
IHRoZSBXaW5kb3dzIHBvcnQgaXMgZXhwZWN0aW5nIHRoYXQgdGhlCisgICAgICAgIEdldEN1cnJl
bnRUaHJlYWQoKSBBUEkgd2lsbCBwcm92aWRlIGEgdW5pcXVlIEhBTkRMRSBmb3IgZWFjaCB0aHJl
YWQuICBUaGUgY29kZQorICAgICAgICB0aGVuIHNhdmVzIGFuZCBsYXRlciB1c2VzIHRoYXQgSEFO
RExFIHdpdGggR2V0VGhyZWFkQ29udGV4dCgpIHRvIGdldCB0aGUKKyAgICAgICAgcnVudGltZSBz
dGF0ZSBvZiB0aGUgdGFyZ2V0IHRocmVhZCBmcm9tIHRoZSBHQyB0aHJlYWQuICBBY2NvcmRpbmcg
dG8KKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5k
b3dzL2Rlc2t0b3AvbXM2ODMxODIodj12cy44NSkuYXNweCwKKyAgICAgICAgR2V0Q3VycmVudFRo
cmVhZCgpIGRvZXMgbm90IHByb3ZpZGUgdGhpcyB1bmlxdWUgSEFORExFIHRoYXQgd2UgZXhwZWN0
OgorCisgICAgICAgICAgICAiVGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGJ5IG9uZSB0aHJl
YWQgdG8gY3JlYXRlIGEgaGFuZGxlIHRoYXQgY2FuCisgICAgICAgICAgICBiZSB1c2VkIGJ5IG90
aGVyIHRocmVhZHMgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IHRocmVhZC4gVGhlIGhhbmRsZSBpcwor
ICAgICAgICAgICAgYWx3YXlzIGludGVycHJldGVkIGFzIHJlZmVycmluZyB0byB0aGUgdGhyZWFk
IHRoYXQgaXMgdXNpbmcgaXQuIEEKKyAgICAgICAgICAgIHRocmVhZCBjYW4gY3JlYXRlIGEgInJl
YWwiIGhhbmRsZSB0byBpdHNlbGYgdGhhdCBjYW4gYmUgdXNlZCBieSBvdGhlcgorICAgICAgICAg
ICAgdGhyZWFkcywgb3IgaW5oZXJpdGVkIGJ5IG90aGVyIHByb2Nlc3NlcywgYnkgc3BlY2lmeWlu
ZyB0aGUgcHNldWRvCisgICAgICAgICAgICBoYW5kbGUgYXMgdGhlIHNvdXJjZSBoYW5kbGUgaW4g
YSBjYWxsIHRvIHRoZSBEdXBsaWNhdGVIYW5kbGUgZnVuY3Rpb24u4oCdCisKKyAgICAgICAgQXMg
YSByZXN1bHQgb2YgdGhpcywgR2V0Q3VycmVudFRocmVhZCgpIGFsd2F5cyByZXR1cm5zIHRoZSBz
YW1lIEhBTkRMRSB2YWx1ZSwgYW5kCisgICAgICAgIHdlIGVuZCB1cCBuZXZlciBzY2FubmluZyB0
aGUgc3RhY2tzIG9mIG90aGVyIHRocmVhZHMgYmVjYXVzZSB3ZSB3cm9uZ2x5IHRoaW5rIHRoYXQK
KyAgICAgICAgdGhleSBhcmUgYWxsIGVxdWFsIChpbiBpZGVudGl0eSkgdG8gdGhlIHNjYW5uaW5n
IHRocmVhZC4gIFRoaXMsIGluIHR1cm4sIHJlc3VsdHMKKyAgICAgICAgaW4gY3Jhc2hlcyBkdWUg
b2JqZWN0cyB0aGF0IGFyZSBpbmNvcnJlY3RseSBjb2xsZWN0ZWQuCisKKyAgICAgICAgVGhlIGZp
eCBpcyB0byBjYWxsIER1cGxpY2F0ZUhhbmRsZSgpIHRvIGNyZWF0ZSBhIEhBTkRMRSB0aGF0IHdl
IGNhbiB1c2UuICBUaGUKKyAgICAgICAgTWFjaGluZVRocmVhZHM6OlRocmVhZCBjbGFzcyBhbHJl
YWR5IGFjY3VyYXRlbHkgdHJhY2tzIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVuCisgICAgICAgIHdl
IG5lZWQgdGhhdCBIQU5ETEUgZm9yIHRoZSBWTS4gIEhlbmNlLCB0aGUgbGlmZS1jeWNsZSBvZiB0
aGUgSEFORExFIGNhbiBiZSB0aWVkCisgICAgICAgIHRvIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSBN
YWNoaW5lVGhyZWFkczo6VGhyZWFkIG9iamVjdCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgdGhyZWFk
LgorCisgICAgICAgICogaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlND
OjpnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFk
czo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6VGhyZWFk
Ojp+VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OlRocmVhZDo6c3VzcGVu
ZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OnJlc3VtZSk6CisgICAg
ICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OmdldFJlZ2lzdGVycyk6CisKIDIwMTUt
MDUtMTIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0pTQ10gTWFrZSB0aGUgTmVnWmVybyBiYWNrd2FyZCBwcm9wYWdhdGVkIGZsYWdzIG9mIEFyaXRo
TW9kIHN0cmljdGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDE4NDIxOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDcgKzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgT1MoREFSV0lOKQogdHlwZWRlZiBtYWNo
X3BvcnRfdCBQbGF0Zm9ybVRocmVhZDsKICNlbGlmIE9TKFdJTkRPV1MpCi10eXBlZGVmIEhBTkRM
RSBQbGF0Zm9ybVRocmVhZDsKK3R5cGVkZWYgRFdPUkQgUGxhdGZvcm1UaHJlYWQ7CiAjZWxpZiBV
U0UoUFRIUkVBRFMpCiB0eXBlZGVmIHB0aHJlYWRfdCBQbGF0Zm9ybVRocmVhZDsKIHN0YXRpYyBj
b25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjI7CkBAIC0xNTEsNyArMTUx
LDcgQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2lmIE9TKERB
UldJTikKICAgICByZXR1cm4gcHRocmVhZF9tYWNoX3RocmVhZF9ucChwdGhyZWFkX3NlbGYoKSk7
CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkKCk7CisgICAg
cmV0dXJuIEdldEN1cnJlbnRUaHJlYWRJZCgpOwogI2VsaWYgVVNFKFBUSFJFQURTKQogICAgIHJl
dHVybiBwdGhyZWFkX3NlbGYoKTsKICNlbmRpZgpAQCAtMTc2LDEwICsxNzYsMjMgQEAgY2xhc3Mg
TWFjaGluZVRocmVhZHM6OlRocmVhZCB7CiAgICAgICAgIHNpZ2VtcHR5c2V0KCZtYXNrKTsKICAg
ICAgICAgc2lnYWRkc2V0KCZtYXNrLCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lKTsKICAgICAgICAg
cHRocmVhZF9zaWdtYXNrKFNJR19VTkJMT0NLLCAmbWFzaywgMCk7CisjZWxpZiBPUyhXSU5ET1dT
KQorICAgICAgICBBU1NFUlQocGxhdGZvcm1UaHJlYWQgPT0gR2V0Q3VycmVudEhhbmRsZUlkKCkp
OworICAgICAgICBib29sIGlzU3VjY2Vzc2Z1bCA9CisgICAgICAgICAgICBEdXBsaWNhdGVIYW5k
bGUoR2V0Q3VycmVudFByb2Nlc3MoKSwgR2V0Q3VycmVudFRocmVhZCgpLCBHZXRDdXJyZW50UHJv
Y2VzcygpLAorICAgICAgICAgICAgICAgICZwbGF0Zm9ybVRocmVhZEhhbmRsZSwgMCwgRkFMU0Us
IERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzU3VjY2Vz
c2Z1bCk7CiAjZW5kaWYKICAgICB9CiAKIHB1YmxpYzoKKyAgICB+VGhyZWFkKCkKKyAgICB7Cisj
aWYgT1MoV0lORE9XUykKKyAgICAgICAgQ2xvc2VIYW5kbGUocGxhdGZvcm1UaHJlYWRIYW5kbGUp
OworI2VuZGlmCisgICAgfQorCiAgICAgc3RhdGljIFRocmVhZCogY3JlYXRlRm9yQ3VycmVudFRo
cmVhZCgpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFRocmVhZChnZXRDdXJyZW50UGxhdGZv
cm1UaHJlYWQoKSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOwpAQCAtMjI4LDYg
KzI0MSw5IEBAIHB1YmxpYzoKICAgICBUaHJlYWQqIG5leHQ7CiAgICAgUGxhdGZvcm1UaHJlYWQg
cGxhdGZvcm1UaHJlYWQ7CiAgICAgdm9pZCogc3RhY2tCYXNlOworI2lmIE9TKFdJTkRPV1MpCisg
ICAgSEFORExFIHBsYXRmb3JtVGhyZWFkSGFuZGxlOworI2VuZGlmCiB9OwogCiBNYWNoaW5lVGhy
ZWFkczo6TWFjaGluZVRocmVhZHMoSGVhcCogaGVhcCkKQEAgLTMzNSw3ICszNTEsNyBAQCBpbmxp
bmUgYm9vbCBNYWNoaW5lVGhyZWFkczo6VGhyZWFkOjpzdXNwCiAgICAga2Vybl9yZXR1cm5fdCBy
ZXN1bHQgPSB0aHJlYWRfc3VzcGVuZChwbGF0Zm9ybVRocmVhZCk7CiAgICAgcmV0dXJuIHJlc3Vs
dCA9PSBLRVJOX1NVQ0NFU1M7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIGJvb2wgdGhyZWFkSXNT
dXNwZW5kZWQgPSAoU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVhZCkgIT0gKERXT1JEKS0xKTsK
KyAgICBib29sIHRocmVhZElzU3VzcGVuZGVkID0gKFN1c3BlbmRUaHJlYWQocGxhdGZvcm1UaHJl
YWRIYW5kbGUpICE9IChEV09SRCktMSk7CiAgICAgQVNTRVJUKHRocmVhZElzU3VzcGVuZGVkKTsK
ICAgICByZXR1cm4gdGhyZWFkSXNTdXNwZW5kZWQ7CiAjZWxpZiBVU0UoUFRIUkVBRFMpCkBAIC0z
NTEsNyArMzY3LDcgQEAgaW5saW5lIHZvaWQgTWFjaGluZVRocmVhZHM6OlRocmVhZDo6cmVzdQog
I2lmIE9TKERBUldJTikKICAgICB0aHJlYWRfcmVzdW1lKHBsYXRmb3JtVGhyZWFkKTsKICNlbGlm
IE9TKFdJTkRPV1MpCi0gICAgUmVzdW1lVGhyZWFkKHBsYXRmb3JtVGhyZWFkKTsKKyAgICBSZXN1
bWVUaHJlYWQocGxhdGZvcm1UaHJlYWRIYW5kbGUpOwogI2VsaWYgVVNFKFBUSFJFQURTKQogICAg
IHB0aHJlYWRfa2lsbChwbGF0Zm9ybVRocmVhZCwgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSk7CiAj
ZWxzZQpAQCAtMzk2LDcgKzQxMiw3IEBAIHNpemVfdCBNYWNoaW5lVGhyZWFkczo6VGhyZWFkOjpn
ZXRSZWdpc3QKIAogI2VsaWYgT1MoV0lORE9XUykKICAgICByZWdzLkNvbnRleHRGbGFncyA9IENP
TlRFWFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTDsKLSAgICBHZXRUaHJlYWRDb250ZXh0KHBs
YXRmb3JtVGhyZWFkLCAmcmVncyk7CisgICAgR2V0VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRocmVh
ZEhhbmRsZSwgJnJlZ3MpOwogICAgIHJldHVybiBzaXplb2YoQ09OVEVYVCk7CiAjZWxpZiBVU0Uo
UFRIUkVBRFMpCiAgICAgcHRocmVhZF9hdHRyX2luaXQoJnJlZ3MpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252991</attachid>
            <date>2015-05-12 15:11:26 -0700</date>
            <delta_ts>2015-05-12 18:27:03 -0700</delta_ts>
            <desc>patch 2: fixed Windows build problem.</desc>
            <filename>bug-144924.patch</filename>
            <type>text/plain</type>
            <size>5456</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MjIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE1LTA1LTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBX
aW5kb3dzOiBDYW5ub3QgdXNlIEhBTkRMRSBmcm9tIEdldEN1cnJlbnRUaHJlYWQoKSB0byBnZXQg
dGhlIENPTlRFWFQgb2YgYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJlc2VudCBzdGFjayBzY2FubmluZyBjb2RlIGlu
IHRoZSBXaW5kb3dzIHBvcnQgaXMgZXhwZWN0aW5nIHRoYXQgdGhlCisgICAgICAgIEdldEN1cnJl
bnRUaHJlYWQoKSBBUEkgd2lsbCBwcm92aWRlIGEgdW5pcXVlIEhBTkRMRSBmb3IgZWFjaCB0aHJl
YWQuICBUaGUgY29kZQorICAgICAgICB0aGVuIHNhdmVzIGFuZCBsYXRlciB1c2VzIHRoYXQgSEFO
RExFIHdpdGggR2V0VGhyZWFkQ29udGV4dCgpIHRvIGdldCB0aGUKKyAgICAgICAgcnVudGltZSBz
dGF0ZSBvZiB0aGUgdGFyZ2V0IHRocmVhZCBmcm9tIHRoZSBHQyB0aHJlYWQuICBBY2NvcmRpbmcg
dG8KKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5k
b3dzL2Rlc2t0b3AvbXM2ODMxODIodj12cy44NSkuYXNweCwKKyAgICAgICAgR2V0Q3VycmVudFRo
cmVhZCgpIGRvZXMgbm90IHByb3ZpZGUgdGhpcyB1bmlxdWUgSEFORExFIHRoYXQgd2UgZXhwZWN0
OgorCisgICAgICAgICAgICAiVGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGJ5IG9uZSB0aHJl
YWQgdG8gY3JlYXRlIGEgaGFuZGxlIHRoYXQgY2FuCisgICAgICAgICAgICBiZSB1c2VkIGJ5IG90
aGVyIHRocmVhZHMgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IHRocmVhZC4gVGhlIGhhbmRsZSBpcwor
ICAgICAgICAgICAgYWx3YXlzIGludGVycHJldGVkIGFzIHJlZmVycmluZyB0byB0aGUgdGhyZWFk
IHRoYXQgaXMgdXNpbmcgaXQuIEEKKyAgICAgICAgICAgIHRocmVhZCBjYW4gY3JlYXRlIGEgInJl
YWwiIGhhbmRsZSB0byBpdHNlbGYgdGhhdCBjYW4gYmUgdXNlZCBieSBvdGhlcgorICAgICAgICAg
ICAgdGhyZWFkcywgb3IgaW5oZXJpdGVkIGJ5IG90aGVyIHByb2Nlc3NlcywgYnkgc3BlY2lmeWlu
ZyB0aGUgcHNldWRvCisgICAgICAgICAgICBoYW5kbGUgYXMgdGhlIHNvdXJjZSBoYW5kbGUgaW4g
YSBjYWxsIHRvIHRoZSBEdXBsaWNhdGVIYW5kbGUgZnVuY3Rpb24u4oCdCisKKyAgICAgICAgQXMg
YSByZXN1bHQgb2YgdGhpcywgR2V0Q3VycmVudFRocmVhZCgpIGFsd2F5cyByZXR1cm5zIHRoZSBz
YW1lIEhBTkRMRSB2YWx1ZSwgYW5kCisgICAgICAgIHdlIGVuZCB1cCBuZXZlciBzY2FubmluZyB0
aGUgc3RhY2tzIG9mIG90aGVyIHRocmVhZHMgYmVjYXVzZSB3ZSB3cm9uZ2x5IHRoaW5rIHRoYXQK
KyAgICAgICAgdGhleSBhcmUgYWxsIGVxdWFsIChpbiBpZGVudGl0eSkgdG8gdGhlIHNjYW5uaW5n
IHRocmVhZC4gIFRoaXMsIGluIHR1cm4sIHJlc3VsdHMKKyAgICAgICAgaW4gY3Jhc2hlcyBkdWUg
b2JqZWN0cyB0aGF0IGFyZSBpbmNvcnJlY3RseSBjb2xsZWN0ZWQuCisKKyAgICAgICAgVGhlIGZp
eCBpcyB0byBjYWxsIER1cGxpY2F0ZUhhbmRsZSgpIHRvIGNyZWF0ZSBhIEhBTkRMRSB0aGF0IHdl
IGNhbiB1c2UuICBUaGUKKyAgICAgICAgTWFjaGluZVRocmVhZHM6OlRocmVhZCBjbGFzcyBhbHJl
YWR5IGFjY3VyYXRlbHkgdHJhY2tzIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVuCisgICAgICAgIHdl
IG5lZWQgdGhhdCBIQU5ETEUgZm9yIHRoZSBWTS4gIEhlbmNlLCB0aGUgbGlmZS1jeWNsZSBvZiB0
aGUgSEFORExFIGNhbiBiZSB0aWVkCisgICAgICAgIHRvIHRoZSBsaWZlLWN5Y2xlIG9mIHRoZSBN
YWNoaW5lVGhyZWFkczo6VGhyZWFkIG9iamVjdCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgdGhyZWFk
LgorCisgICAgICAgICogaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlND
OjpnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFk
czo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6VGhyZWFk
Ojp+VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OlRocmVhZDo6c3VzcGVu
ZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OnJlc3VtZSk6CisgICAg
ICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OmdldFJlZ2lzdGVycyk6CisKIDIwMTUt
MDUtMTIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0pTQ10gTWFrZSB0aGUgTmVnWmVybyBiYWNrd2FyZCBwcm9wYWdhdGVkIGZsYWdzIG9mIEFyaXRo
TW9kIHN0cmljdGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3Rh
Y2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
Y2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDE4NDIxOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcy
LDcgKzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgT1MoREFSV0lOKQogdHlwZWRlZiBtYWNo
X3BvcnRfdCBQbGF0Zm9ybVRocmVhZDsKICNlbGlmIE9TKFdJTkRPV1MpCi10eXBlZGVmIEhBTkRM
RSBQbGF0Zm9ybVRocmVhZDsKK3R5cGVkZWYgRFdPUkQgUGxhdGZvcm1UaHJlYWQ7CiAjZWxpZiBV
U0UoUFRIUkVBRFMpCiB0eXBlZGVmIHB0aHJlYWRfdCBQbGF0Zm9ybVRocmVhZDsKIHN0YXRpYyBj
b25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjI7CkBAIC0xNTEsNyArMTUx
LDcgQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2lmIE9TKERB
UldJTikKICAgICByZXR1cm4gcHRocmVhZF9tYWNoX3RocmVhZF9ucChwdGhyZWFkX3NlbGYoKSk7
CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkKCk7CisgICAg
cmV0dXJuIEdldEN1cnJlbnRUaHJlYWRJZCgpOwogI2VsaWYgVVNFKFBUSFJFQURTKQogICAgIHJl
dHVybiBwdGhyZWFkX3NlbGYoKTsKICNlbmRpZgpAQCAtMTc2LDEwICsxNzYsMjMgQEAgY2xhc3Mg
TWFjaGluZVRocmVhZHM6OlRocmVhZCB7CiAgICAgICAgIHNpZ2VtcHR5c2V0KCZtYXNrKTsKICAg
ICAgICAgc2lnYWRkc2V0KCZtYXNrLCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lKTsKICAgICAgICAg
cHRocmVhZF9zaWdtYXNrKFNJR19VTkJMT0NLLCAmbWFzaywgMCk7CisjZWxpZiBPUyhXSU5ET1dT
KQorICAgICAgICBBU1NFUlQocGxhdGZvcm1UaHJlYWQgPT0gR2V0Q3VycmVudFRocmVhZElkKCkp
OworICAgICAgICBib29sIGlzU3VjY2Vzc2Z1bCA9CisgICAgICAgICAgICBEdXBsaWNhdGVIYW5k
bGUoR2V0Q3VycmVudFByb2Nlc3MoKSwgR2V0Q3VycmVudFRocmVhZCgpLCBHZXRDdXJyZW50UHJv
Y2VzcygpLAorICAgICAgICAgICAgICAgICZwbGF0Zm9ybVRocmVhZEhhbmRsZSwgMCwgRkFMU0Us
IERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzU3VjY2Vz
c2Z1bCk7CiAjZW5kaWYKICAgICB9CiAKIHB1YmxpYzoKKyAgICB+VGhyZWFkKCkKKyAgICB7Cisj
aWYgT1MoV0lORE9XUykKKyAgICAgICAgQ2xvc2VIYW5kbGUocGxhdGZvcm1UaHJlYWRIYW5kbGUp
OworI2VuZGlmCisgICAgfQorCiAgICAgc3RhdGljIFRocmVhZCogY3JlYXRlRm9yQ3VycmVudFRo
cmVhZCgpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFRocmVhZChnZXRDdXJyZW50UGxhdGZv
cm1UaHJlYWQoKSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOwpAQCAtMjI4LDYg
KzI0MSw5IEBAIHB1YmxpYzoKICAgICBUaHJlYWQqIG5leHQ7CiAgICAgUGxhdGZvcm1UaHJlYWQg
cGxhdGZvcm1UaHJlYWQ7CiAgICAgdm9pZCogc3RhY2tCYXNlOworI2lmIE9TKFdJTkRPV1MpCisg
ICAgSEFORExFIHBsYXRmb3JtVGhyZWFkSGFuZGxlOworI2VuZGlmCiB9OwogCiBNYWNoaW5lVGhy
ZWFkczo6TWFjaGluZVRocmVhZHMoSGVhcCogaGVhcCkKQEAgLTMzNSw3ICszNTEsNyBAQCBpbmxp
bmUgYm9vbCBNYWNoaW5lVGhyZWFkczo6VGhyZWFkOjpzdXNwCiAgICAga2Vybl9yZXR1cm5fdCBy
ZXN1bHQgPSB0aHJlYWRfc3VzcGVuZChwbGF0Zm9ybVRocmVhZCk7CiAgICAgcmV0dXJuIHJlc3Vs
dCA9PSBLRVJOX1NVQ0NFU1M7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIGJvb2wgdGhyZWFkSXNT
dXNwZW5kZWQgPSAoU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVhZCkgIT0gKERXT1JEKS0xKTsK
KyAgICBib29sIHRocmVhZElzU3VzcGVuZGVkID0gKFN1c3BlbmRUaHJlYWQocGxhdGZvcm1UaHJl
YWRIYW5kbGUpICE9IChEV09SRCktMSk7CiAgICAgQVNTRVJUKHRocmVhZElzU3VzcGVuZGVkKTsK
ICAgICByZXR1cm4gdGhyZWFkSXNTdXNwZW5kZWQ7CiAjZWxpZiBVU0UoUFRIUkVBRFMpCkBAIC0z
NTEsNyArMzY3LDcgQEAgaW5saW5lIHZvaWQgTWFjaGluZVRocmVhZHM6OlRocmVhZDo6cmVzdQog
I2lmIE9TKERBUldJTikKICAgICB0aHJlYWRfcmVzdW1lKHBsYXRmb3JtVGhyZWFkKTsKICNlbGlm
IE9TKFdJTkRPV1MpCi0gICAgUmVzdW1lVGhyZWFkKHBsYXRmb3JtVGhyZWFkKTsKKyAgICBSZXN1
bWVUaHJlYWQocGxhdGZvcm1UaHJlYWRIYW5kbGUpOwogI2VsaWYgVVNFKFBUSFJFQURTKQogICAg
IHB0aHJlYWRfa2lsbChwbGF0Zm9ybVRocmVhZCwgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSk7CiAj
ZWxzZQpAQCAtMzk2LDcgKzQxMiw3IEBAIHNpemVfdCBNYWNoaW5lVGhyZWFkczo6VGhyZWFkOjpn
ZXRSZWdpc3QKIAogI2VsaWYgT1MoV0lORE9XUykKICAgICByZWdzLkNvbnRleHRGbGFncyA9IENP
TlRFWFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTDsKLSAgICBHZXRUaHJlYWRDb250ZXh0KHBs
YXRmb3JtVGhyZWFkLCAmcmVncyk7CisgICAgR2V0VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRocmVh
ZEhhbmRsZSwgJnJlZ3MpOwogICAgIHJldHVybiBzaXplb2YoQ09OVEVYVCk7CiAjZWxpZiBVU0Uo
UFRIUkVBRFMpCiAgICAgcHRocmVhZF9hdHRyX2luaXQoJnJlZ3MpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253001</attachid>
            <date>2015-05-12 18:27:03 -0700</date>
            <delta_ts>2015-05-12 18:45:43 -0700</delta_ts>
            <desc>patch 3: Fixed a ChangeLog comment.</desc>
            <filename>bug-144924.patch</filename>
            <type>text/plain</type>
            <size>5459</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MjIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE1LTA1LTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBX
aW5kb3dzOiBDYW5ub3QgdXNlIEhBTkRMRSBmcm9tIEdldEN1cnJlbnRUaHJlYWQoKSB0byBnZXQg
dGhlIENPTlRFWFQgb2YgYW5vdGhlciB0aHJlYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ5MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJlc2VudCBzdGFjayBzY2FubmluZyBjb2RlIGlu
IHRoZSBXaW5kb3dzIHBvcnQgaXMgZXhwZWN0aW5nIHRoYXQgdGhlCisgICAgICAgIEdldEN1cnJl
bnRUaHJlYWQoKSBBUEkgd2lsbCBwcm92aWRlIGEgdW5pcXVlIEhBTkRMRSBmb3IgZWFjaCB0aHJl
YWQuICBUaGUgY29kZQorICAgICAgICB0aGVuIHNhdmVzIGFuZCBsYXRlciB1c2VzIHRoYXQgSEFO
RExFIHdpdGggR2V0VGhyZWFkQ29udGV4dCgpIHRvIGdldCB0aGUKKyAgICAgICAgcnVudGltZSBz
dGF0ZSBvZiB0aGUgdGFyZ2V0IHRocmVhZCBmcm9tIHRoZSBHQyB0aHJlYWQuICBBY2NvcmRpbmcg
dG8KKyAgICAgICAgaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93aW5k
b3dzL2Rlc2t0b3AvbXM2ODMxODIodj12cy44NSkuYXNweCwKKyAgICAgICAgR2V0Q3VycmVudFRo
cmVhZCgpIGRvZXMgbm90IHByb3ZpZGUgdGhpcyB1bmlxdWUgSEFORExFIHRoYXQgd2UgZXhwZWN0
OgorCisgICAgICAgICAgICAiVGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGJ5IG9uZSB0aHJl
YWQgdG8gY3JlYXRlIGEgaGFuZGxlIHRoYXQgY2FuCisgICAgICAgICAgICBiZSB1c2VkIGJ5IG90
aGVyIHRocmVhZHMgdG8gcmVmZXIgdG8gdGhlIGZpcnN0IHRocmVhZC4gVGhlIGhhbmRsZSBpcwor
ICAgICAgICAgICAgYWx3YXlzIGludGVycHJldGVkIGFzIHJlZmVycmluZyB0byB0aGUgdGhyZWFk
IHRoYXQgaXMgdXNpbmcgaXQuIEEKKyAgICAgICAgICAgIHRocmVhZCBjYW4gY3JlYXRlIGEgInJl
YWwiIGhhbmRsZSB0byBpdHNlbGYgdGhhdCBjYW4gYmUgdXNlZCBieSBvdGhlcgorICAgICAgICAg
ICAgdGhyZWFkcywgb3IgaW5oZXJpdGVkIGJ5IG90aGVyIHByb2Nlc3NlcywgYnkgc3BlY2lmeWlu
ZyB0aGUgcHNldWRvCisgICAgICAgICAgICBoYW5kbGUgYXMgdGhlIHNvdXJjZSBoYW5kbGUgaW4g
YSBjYWxsIHRvIHRoZSBEdXBsaWNhdGVIYW5kbGUgZnVuY3Rpb24u4oCdCisKKyAgICAgICAgQXMg
YSByZXN1bHQgb2YgdGhpcywgR2V0Q3VycmVudFRocmVhZCgpIGFsd2F5cyByZXR1cm5zIHRoZSBz
YW1lIEhBTkRMRSB2YWx1ZSwgYW5kCisgICAgICAgIHdlIGVuZCB1cCBuZXZlciBzY2FubmluZyB0
aGUgc3RhY2tzIG9mIG90aGVyIHRocmVhZHMgYmVjYXVzZSB3ZSB3cm9uZ2x5IHRoaW5rIHRoYXQK
KyAgICAgICAgdGhleSBhcmUgYWxsIGVxdWFsIChpbiBpZGVudGl0eSkgdG8gdGhlIHNjYW5uaW5n
IHRocmVhZC4gIFRoaXMsIGluIHR1cm4sIHJlc3VsdHMKKyAgICAgICAgaW4gY3Jhc2hlcyBkdWUg
dG8gb2JqZWN0cyB0aGF0IGFyZSBpbmNvcnJlY3RseSBjb2xsZWN0ZWQuCisKKyAgICAgICAgVGhl
IGZpeCBpcyB0byBjYWxsIER1cGxpY2F0ZUhhbmRsZSgpIHRvIGNyZWF0ZSBhIEhBTkRMRSB0aGF0
IHdlIGNhbiB1c2UuICBUaGUKKyAgICAgICAgTWFjaGluZVRocmVhZHM6OlRocmVhZCBjbGFzcyBh
bHJlYWR5IGFjY3VyYXRlbHkgdHJhY2tzIHRoZSBwZXJpb2Qgb2YgdGltZSB3aGVuCisgICAgICAg
IHdlIG5lZWQgdGhhdCBIQU5ETEUgZm9yIHRoZSBWTS4gIEhlbmNlLCB0aGUgbGlmZS1jeWNsZSBv
ZiB0aGUgSEFORExFIGNhbiBiZSB0aWVkCisgICAgICAgIHRvIHRoZSBsaWZlLWN5Y2xlIG9mIHRo
ZSBNYWNoaW5lVGhyZWFkczo6VGhyZWFkIG9iamVjdCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgdGhy
ZWFkLgorCisgICAgICAgICogaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAo
SlNDOjpnZXRDdXJyZW50UGxhdGZvcm1UaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhy
ZWFkczo6VGhyZWFkOjpUaHJlYWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lVGhyZWFkczo6VGhy
ZWFkOjp+VGhyZWFkKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVRocmVhZHM6OlRocmVhZDo6c3Vz
cGVuZCk6CisgICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OnJlc3VtZSk6Cisg
ICAgICAgIChKU0M6Ok1hY2hpbmVUaHJlYWRzOjpUaHJlYWQ6OmdldFJlZ2lzdGVycyk6CisKIDIw
MTUtMDUtMTIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gTWFrZSB0aGUgTmVnWmVybyBiYWNrd2FyZCBwcm9wYWdhdGVkIGZsYWdzIG9mIEFy
aXRoTW9kIHN0cmljdGVyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5l
U3RhY2tNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L01hY2hpbmVTdGFja01hcmtlci5jcHAJKHJldmlzaW9uIDE4NDIxOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDcgKzcyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAjaWYgT1MoREFSV0lOKQogdHlwZWRlZiBt
YWNoX3BvcnRfdCBQbGF0Zm9ybVRocmVhZDsKICNlbGlmIE9TKFdJTkRPV1MpCi10eXBlZGVmIEhB
TkRMRSBQbGF0Zm9ybVRocmVhZDsKK3R5cGVkZWYgRFdPUkQgUGxhdGZvcm1UaHJlYWQ7CiAjZWxp
ZiBVU0UoUFRIUkVBRFMpCiB0eXBlZGVmIHB0aHJlYWRfdCBQbGF0Zm9ybVRocmVhZDsKIHN0YXRp
YyBjb25zdCBpbnQgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSA9IFNJR1VTUjI7CkBAIC0xNTEsNyAr
MTUxLDcgQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2lmIE9T
KERBUldJTikKICAgICByZXR1cm4gcHRocmVhZF9tYWNoX3RocmVhZF9ucChwdGhyZWFkX3NlbGYo
KSk7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiBHZXRDdXJyZW50VGhyZWFkKCk7Cisg
ICAgcmV0dXJuIEdldEN1cnJlbnRUaHJlYWRJZCgpOwogI2VsaWYgVVNFKFBUSFJFQURTKQogICAg
IHJldHVybiBwdGhyZWFkX3NlbGYoKTsKICNlbmRpZgpAQCAtMTc2LDEwICsxNzYsMjMgQEAgY2xh
c3MgTWFjaGluZVRocmVhZHM6OlRocmVhZCB7CiAgICAgICAgIHNpZ2VtcHR5c2V0KCZtYXNrKTsK
ICAgICAgICAgc2lnYWRkc2V0KCZtYXNrLCBTaWdUaHJlYWRTdXNwZW5kUmVzdW1lKTsKICAgICAg
ICAgcHRocmVhZF9zaWdtYXNrKFNJR19VTkJMT0NLLCAmbWFzaywgMCk7CisjZWxpZiBPUyhXSU5E
T1dTKQorICAgICAgICBBU1NFUlQocGxhdGZvcm1UaHJlYWQgPT0gR2V0Q3VycmVudFRocmVhZElk
KCkpOworICAgICAgICBib29sIGlzU3VjY2Vzc2Z1bCA9CisgICAgICAgICAgICBEdXBsaWNhdGVI
YW5kbGUoR2V0Q3VycmVudFByb2Nlc3MoKSwgR2V0Q3VycmVudFRocmVhZCgpLCBHZXRDdXJyZW50
UHJvY2VzcygpLAorICAgICAgICAgICAgICAgICZwbGF0Zm9ybVRocmVhZEhhbmRsZSwgMCwgRkFM
U0UsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzU3Vj
Y2Vzc2Z1bCk7CiAjZW5kaWYKICAgICB9CiAKIHB1YmxpYzoKKyAgICB+VGhyZWFkKCkKKyAgICB7
CisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgQ2xvc2VIYW5kbGUocGxhdGZvcm1UaHJlYWRIYW5k
bGUpOworI2VuZGlmCisgICAgfQorCiAgICAgc3RhdGljIFRocmVhZCogY3JlYXRlRm9yQ3VycmVu
dFRocmVhZCgpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFRocmVhZChnZXRDdXJyZW50UGxh
dGZvcm1UaHJlYWQoKSwgd3RmVGhyZWFkRGF0YSgpLnN0YWNrKCkub3JpZ2luKCkpOwpAQCAtMjI4
LDYgKzI0MSw5IEBAIHB1YmxpYzoKICAgICBUaHJlYWQqIG5leHQ7CiAgICAgUGxhdGZvcm1UaHJl
YWQgcGxhdGZvcm1UaHJlYWQ7CiAgICAgdm9pZCogc3RhY2tCYXNlOworI2lmIE9TKFdJTkRPV1Mp
CisgICAgSEFORExFIHBsYXRmb3JtVGhyZWFkSGFuZGxlOworI2VuZGlmCiB9OwogCiBNYWNoaW5l
VGhyZWFkczo6TWFjaGluZVRocmVhZHMoSGVhcCogaGVhcCkKQEAgLTMzNSw3ICszNTEsNyBAQCBp
bmxpbmUgYm9vbCBNYWNoaW5lVGhyZWFkczo6VGhyZWFkOjpzdXNwCiAgICAga2Vybl9yZXR1cm5f
dCByZXN1bHQgPSB0aHJlYWRfc3VzcGVuZChwbGF0Zm9ybVRocmVhZCk7CiAgICAgcmV0dXJuIHJl
c3VsdCA9PSBLRVJOX1NVQ0NFU1M7CiAjZWxpZiBPUyhXSU5ET1dTKQotICAgIGJvb2wgdGhyZWFk
SXNTdXNwZW5kZWQgPSAoU3VzcGVuZFRocmVhZChwbGF0Zm9ybVRocmVhZCkgIT0gKERXT1JEKS0x
KTsKKyAgICBib29sIHRocmVhZElzU3VzcGVuZGVkID0gKFN1c3BlbmRUaHJlYWQocGxhdGZvcm1U
aHJlYWRIYW5kbGUpICE9IChEV09SRCktMSk7CiAgICAgQVNTRVJUKHRocmVhZElzU3VzcGVuZGVk
KTsKICAgICByZXR1cm4gdGhyZWFkSXNTdXNwZW5kZWQ7CiAjZWxpZiBVU0UoUFRIUkVBRFMpCkBA
IC0zNTEsNyArMzY3LDcgQEAgaW5saW5lIHZvaWQgTWFjaGluZVRocmVhZHM6OlRocmVhZDo6cmVz
dQogI2lmIE9TKERBUldJTikKICAgICB0aHJlYWRfcmVzdW1lKHBsYXRmb3JtVGhyZWFkKTsKICNl
bGlmIE9TKFdJTkRPV1MpCi0gICAgUmVzdW1lVGhyZWFkKHBsYXRmb3JtVGhyZWFkKTsKKyAgICBS
ZXN1bWVUaHJlYWQocGxhdGZvcm1UaHJlYWRIYW5kbGUpOwogI2VsaWYgVVNFKFBUSFJFQURTKQog
ICAgIHB0aHJlYWRfa2lsbChwbGF0Zm9ybVRocmVhZCwgU2lnVGhyZWFkU3VzcGVuZFJlc3VtZSk7
CiAjZWxzZQpAQCAtMzk2LDcgKzQxMiw3IEBAIHNpemVfdCBNYWNoaW5lVGhyZWFkczo6VGhyZWFk
OjpnZXRSZWdpc3QKIAogI2VsaWYgT1MoV0lORE9XUykKICAgICByZWdzLkNvbnRleHRGbGFncyA9
IENPTlRFWFRfSU5URUdFUiB8IENPTlRFWFRfQ09OVFJPTDsKLSAgICBHZXRUaHJlYWRDb250ZXh0
KHBsYXRmb3JtVGhyZWFkLCAmcmVncyk7CisgICAgR2V0VGhyZWFkQ29udGV4dChwbGF0Zm9ybVRo
cmVhZEhhbmRsZSwgJnJlZ3MpOwogICAgIHJldHVybiBzaXplb2YoQ09OVEVYVCk7CiAjZWxpZiBV
U0UoUFRIUkVBRFMpCiAgICAgcHRocmVhZF9hdHRyX2luaXQoJnJlZ3MpOwo=
</data>
<flag name="review"
          id="277857"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>