<?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>153536</bug_id>
          
          <creation_ts>2016-01-26 22:31:23 -0800</creation_ts>
          <short_desc>[JSC] adjustFrameAndStackInOSRExitCompilerThunk() can trash values in FTL</short_desc>
          <delta_ts>2016-01-27 16:29:22 -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>New Bugs</component>
          <version>WebKit 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1159215</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-26 22:31:23 -0800</bug_when>
    <thetext>[JSC] adjustFrameAndStackInOSRExitCompilerThunk() can trash values in FTL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159216</commentid>
    <comment_count>1</comment_count>
      <attachid>269982</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-26 22:34:11 -0800</bug_when>
    <thetext>Created attachment 269982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159237</commentid>
    <comment_count>2</comment_count>
      <attachid>269982</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-27 00:21:20 -0800</bug_when>
    <thetext>Comment on attachment 269982
Patch

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

r=me

&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.h:48
&gt; +

It might be worth adding a comment here saying we can&apos;t trash the macro assembler scratch registers in the code we emit here.

&gt; Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.h:107
&gt; +    if (isFTLOSRExit)
&gt; +        jit.pushToSave(GPRInfo::regT1);

It might be worth a comment saying that we do this because the previous push will be overwritten by the old top-of-the-stack.
Or you could make it explicit by doing something like:
unsigned stackOffset = MacroAssembler::pushToSaveByteOffset * (isFTLOSRExit ? 2 : 1)
subPtr(offset, SP)
storePtr(regT1, SP)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159241</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-27 00:35:25 -0800</bug_when>
    <thetext>also see discussion here for potential alternative implementations
that take into account generic unwind exits and utilize volatile
registers in situations where we know we&apos;ve arrived at OSR exit
code from the genericUnwind path and therefore can use volatile
registers:

https://bugs.webkit.org/show_bug.cgi?id=151406</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159479</commentid>
    <comment_count>4</comment_count>
      <attachid>270053</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-01-27 15:37:11 -0800</bug_when>
    <thetext>Created attachment 270053
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159508</commentid>
    <comment_count>5</comment_count>
      <attachid>270053</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-27 16:29:18 -0800</bug_when>
    <thetext>Comment on attachment 270053
Patch for landing

Clearing flags on attachment: 270053

Committed r195707: &lt;http://trac.webkit.org/changeset/195707&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159509</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-27 16:29:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269982</attachid>
            <date>2016-01-26 22:34:11 -0800</date>
            <delta_ts>2016-01-27 15:37:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153536-20160126223345.patch</filename>
            <type>text/plain</type>
            <size>5030</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
OTkwNGM3NWY1MTM0YTRhNGYwOWM3NzAyZTY4NTRhNmY2ZmNhMzVkLi5jOWM3ZGFlMDAzNDdjY2Ji
YjVkYjllNTNlOWQwNjNiNzlmMzNmZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNi0wMS0yNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBhZGp1c3RGcmFtZUFuZFN0YWNrSW5PU1JFeGl0Q29tcGls
ZXJUaHVuaygpIGNhbiB0cmFzaCB2YWx1ZXMgaW4gRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24u
aDoKKyAgICAgICAgKEpTQzo6REZHOjphZGp1c3RGcmFtZUFuZFN0YWNrSW5PU1JFeGl0Q29tcGls
ZXJUaHVuayk6CisgICAgICAgIFRoZSBjb2RlIHdhcyB1c2luZyB0aGUgc2NyYXRjaCByZWdpc3Rl
cnMgaW4gYSBmZXcgcGxhY2VzLgorCisgICAgICAgIEkgaW5pdGlhbGx5IHRyaWVkIHRvIG1ha2Ug
aXMgbm90IHVzZSBzY3JhdGNoIHJlZ2lzdGVycyBhbnl3aGVyZQorICAgICAgICBidXQgdGhhdCBs
b29rZWQgc3VwZXIgZnJhZ2lsZS4KKworICAgICAgICBJbnN0ZWFkLCBJIGp1c3QgcHJlc2VydmUg
dGhlIHNjcmF0Y2ggcmVnaXN0ZXJzLiBUaGF0J3MgZWFzeSBhbmQKKyAgICAgICAgaXQgc2hvdWxk
IGJlIHJlbGF0aXZlbHkgY2hlYXAgY29tcGFyZWQgdG8gZXZlcnl0aGluZyBkb25lIG9uIE9TUiBF
eGl0cy4KKwogMjAxNi0wMS0yNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KIAogICAgICAgICBbSlNDXSBXZSBzaG91bGQgbmV2ZXIgdXNlIHgxOCBvbiBpT1MgQVJNNjQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
Q29tbW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNv
bW1vbi5oCmluZGV4IDAyMTU5ZWQ2NGI5NThhYTRkOTRjZTlhMDJiMDdkNmQyMDliZGI1YWMuLjVi
MzdkMzE4OTg3ZGM1ZDU0YWNjMjJlYTUxMThkM2FiMjNhMTU1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkRGR0NvbW1vbkRhdGEuaCIKICNpbmNsdWRlICJERkdKSVRD
b2RlLmgiCiAjaW5jbHVkZSAiRlRMSklUQ29kZS5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyU2V0Lmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIApAQCAtNDQsMjIgKzQ1LDM5IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBKSVRDb2RlVHlwZT4KIHZvaWQgYWRqdXN0RnJhbWVBbmRTdGFj
a0luT1NSRXhpdENvbXBpbGVyVGh1bmsoTWFjcm9Bc3NlbWJsZXImIGppdCwgVk0qIHZtLCBKSVRD
b2RlOjpKSVRUeXBlIGppdFR5cGUpCiB7CiAgICAgQVNTRVJUKGppdFR5cGUgPT0gSklUQ29kZTo6
REZHSklUIHx8IGppdFR5cGUgPT0gSklUQ29kZTo6RlRMSklUKTsKLSAgICBzaXplX3Qgc2NyYXRj
aFNpemUgPSBzaXplb2Yodm9pZCopOworCiAgICAgYm9vbCBpc0ZUTE9TUkV4aXQgPSBqaXRUeXBl
ID09IEpJVENvZGU6OkZUTEpJVDsKKyAgICBSZWdpc3RlclNldCByZWdpc3RlcnNUb1ByZXNlcnZl
OworICAgIHJlZ2lzdGVyc1RvUHJlc2VydmUuc2V0KEdQUkluZm86OnJlZ1QwKTsKKyAgICBpZiAo
aXNGVExPU1JFeGl0KSB7CisgICAgICAgIC8vIEZUTCBjYW4gdXNlIHRoZSBzY3JhdGNoIHJlZ2lz
dGVycyBmb3IgdmFsdWVzLiBXZSBuZWVkIHRvIHByZXNlcnZlIHRoZW0gdG9vLgorICAgICAgICBy
ZWdpc3RlcnNUb1ByZXNlcnZlLm1lcmdlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3Rl
cnMoKSk7CisgICAgfQorCisgICAgc2l6ZV90IHNjcmF0Y2hTaXplID0gc2l6ZW9mKHZvaWQqKSAq
IHJlZ2lzdGVyc1RvUHJlc2VydmUubnVtYmVyT2ZTZXRHUFJzKCk7CiAgICAgaWYgKGlzRlRMT1NS
RXhpdCkKICAgICAgICAgc2NyYXRjaFNpemUgKz0gc2l6ZW9mKHZvaWQqKTsKIAogICAgIFNjcmF0
Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2NyYXRj
aFNpemUpOwogICAgIGNoYXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzY3JhdGNoQnVm
ZmVyLT5kYXRhQnVmZmVyKCkpOwotICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgYnVm
ZmVyKTsKKworICAgIGppdC5wdXNoVG9TYXZlKEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQubW92
ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cihidWZmZXIpLCBHUFJJbmZvOjpyZWdUMSk7
CisKKyAgICB1bnNpZ25lZCBzdG9yZU9mZnNldCA9IDA7CisgICAgcmVnaXN0ZXJzVG9QcmVzZXJ2
ZS5mb3JFYWNoKFsmXShSZWcgcmVnKSB7CisgICAgICAgIGppdC5zdG9yZVB0cihyZWcuZ3ByKCks
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBzdG9yZU9mZnNldCkpOwor
ICAgICAgICBzdG9yZU9mZnNldCArPSBzaXplb2Yodm9pZCopOworICAgIH0pOwogCiAgICAgaWYg
KGlzRlRMT1NSRXhpdCkgewogICAgICAgICAvLyBGVEwgT1NSRXhpdHMgYXJlIGVudGVyZWQgdmlh
IHRoZSBjb2RlIEZUTEV4aXRUaHVua0dlbmVyYXRvciBlbWl0cyB3aGljaCBkb2VzCiAgICAgICAg
IC8vIHB1c2hUb1NhdmVJbW1lZGlhdGVXaXRob3V0VG91Y2hSZWdpc3RlcnMgd2l0aCB0aGUgT1NS
IGV4aXQgaW5kZXguIFdlIG5lZWQgdG8gbG9hZAogICAgICAgICAvLyB0aGF0IHRvcCB2YWx1ZSBh
bmQgdGhlbiBwdXNoIGl0IGJhY2sgd2hlbiB3ZSByZXNldCBvdXIgU1AuCi0gICAgICAgIGppdC5w
ZWVrKEdQUkluZm86OnJlZ1QwKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Qw
LCBidWZmZXIgKyBzaXplb2Yodm9pZCopKTsKKyAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBNYWNy
b0Fzc2VtYmxlcjo6cHVzaFRvU2F2ZUJ5dGVPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAg
ICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhHUFJJbmZvOjpyZWdUMSwgcmVnaXN0ZXJzVG9QcmVzZXJ2ZS5udW1iZXJPZlNldEdQUnMoKSAq
IHNpemVvZih2b2lkKikpKTsKICAgICB9CisgICAgaml0LnBvcFRvUmVzdG9yZShHUFJJbmZvOjpy
ZWdUMSk7CiAKICAgICAvLyBXZSBuZWVkIHRvIHJlc2V0IEZQIGluIHRoZSBjYXNlIG9mIGFuIGV4
Y2VwdGlvbi4KICAgICBqaXQubG9hZFB0cih2bS0+YWRkcmVzc09mQ2FsbEZyYW1lRm9yQ2F0Y2go
KSwgR1BSSW5mbzo6cmVnVDApOwpAQCAtODQsMTUgKzEwMiwyNSBAQCB2b2lkIGFkanVzdEZyYW1l
QW5kU3RhY2tJbk9TUkV4aXRDb21waWxlclRodW5rKE1hY3JvQXNzZW1ibGVyJiBqaXQsIFZNKiB2
bSwgSklUQwogICAgIGppdC5hZGRQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUklu
Zm86OnJlZ1QwKTsKICAgICBqaXQubW92ZShHUFJJbmZvOjpyZWdUMCwgTWFjcm9Bc3NlbWJsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKIAorICAgIGppdC5wdXNoVG9TYXZlKEdQUkluZm86OnJl
Z1QxKTsKKyAgICBpZiAoaXNGVExPU1JFeGl0KQorICAgICAgICBqaXQucHVzaFRvU2F2ZShHUFJJ
bmZvOjpyZWdUMSk7CisKKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0
cihidWZmZXIpLCBHUFJJbmZvOjpyZWdUMSk7CiAgICAgaWYgKGlzRlRMT1NSRXhpdCkgewogICAg
ICAgICAvLyBGVEwgT1NSRXhpdHMgYXJlIGVudGVyZWQgdmlhIEZUTEV4aXRUaHVua0dlbmVyYXRv
ciBjb2RlIHdpdGggZG9lcwogICAgICAgICAvLyBwdXNoVG9TYXZlSW1tZWRpYXRlV2l0aG91dFRv
dWNoUmVnaXN0ZXJzLiBXZSBuZWVkIHRvIGxvYWQgdGhhdCB0b3AKICAgICAgICAgLy8gcmVnaXN0
ZXIgYW5kIHRoZW4gc3RvcmUgaXQgYmFjayB3aGVuIHdlIGhhdmUgb3VyIFNQIGJhY2sgdG8gYSBz
YWZlIHZhbHVlLgotICAgICAgICBqaXQubG9hZFB0cihidWZmZXIgKyBzaXplb2Yodm9pZCopLCBH
UFJJbmZvOjpyZWdUMCk7Ci0gICAgICAgIGppdC5wdXNoVG9TYXZlKEdQUkluZm86OnJlZ1QwKTsK
KyAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVn
VDEsIHJlZ2lzdGVyc1RvUHJlc2VydmUubnVtYmVyT2ZTZXRHUFJzKCkgKiBzaXplb2Yodm9pZCop
KSwgR1BSSW5mbzo6cmVnVDApOworICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDAs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdp
c3RlciwgTWFjcm9Bc3NlbWJsZXI6OnB1c2hUb1NhdmVCeXRlT2Zmc2V0KCkpKTsKICAgICB9CiAK
LSAgICBqaXQubG9hZFB0cihidWZmZXIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICB1bnNpZ25lZCBs
b2FkT2Zmc2V0ID0gMDsKKyAgICByZWdpc3RlcnNUb1ByZXNlcnZlLmZvckVhY2goWyZdKFJlZyBy
ZWcpIHsKKyAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5m
bzo6cmVnVDEsIGxvYWRPZmZzZXQpLCByZWcuZ3ByKCkpOworICAgICAgICBsb2FkT2Zmc2V0ICs9
IHNpemVvZih2b2lkKik7CisgICAgfSk7CisgICAgaml0LnBvcFRvUmVzdG9yZShHUFJJbmZvOjpy
ZWdUMSk7CiB9CiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270053</attachid>
            <date>2016-01-27 15:37:11 -0800</date>
            <delta_ts>2016-01-27 16:29:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-153536-20160127153645.patch</filename>
            <type>text/plain</type>
            <size>5220</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk1NjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MGMwNDhjNWIxNzE3MGM2MjRlMmI5MzU3MDBhOTFkMDNjZWExYTdlLi5kM2Y1MmYyMTY4ZDQzNDEw
NDEwYmQxNWY0Y2ViZWE4M2QxYmVmZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNi0wMS0yNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBhZGp1c3RGcmFtZUFuZFN0YWNrSW5PU1JFeGl0Q29tcGls
ZXJUaHVuaygpIGNhbiB0cmFzaCB2YWx1ZXMgaW4gRlRMCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1MzYKKworICAgICAgICBSZXZpZXdlZCBieSBT
YWFtIEJhcmF0aS4KKworICAgICAgICBXb3JrYXJvdW5kIHRvIGdldCBCMyB3b3JraW5nIG9uIEFS
TS4KKworICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaDoKKyAgICAgICAg
KEpTQzo6REZHOjphZGp1c3RGcmFtZUFuZFN0YWNrSW5PU1JFeGl0Q29tcGlsZXJUaHVuayk6Cisg
ICAgICAgIFRoZSBjb2RlIHdhcyB1c2luZyB0aGUgc2NyYXRjaCByZWdpc3RlcnMgaW4gYSBmZXcg
cGxhY2VzLgorCisgICAgICAgIEkgaW5pdGlhbGx5IHRyaWVkIHRvIG1ha2UgaXMgbm90IHVzZSBz
Y3JhdGNoIHJlZ2lzdGVycyBhbnl3aGVyZQorICAgICAgICBidXQgdGhhdCBsb29rZWQgc3VwZXIg
ZnJhZ2lsZS4KKworICAgICAgICBJbnN0ZWFkLCBJIGp1c3QgcHJlc2VydmUgdGhlIHNjcmF0Y2gg
cmVnaXN0ZXJzLiBUaGF0J3MgZWFzeSBhbmQKKyAgICAgICAgaXQgc2hvdWxkIGJlIHJlbGF0aXZl
bHkgY2hlYXAgY29tcGFyZWQgdG8gZXZlcnl0aGluZyBkb25lIG9uIE9TUiBFeGl0cy4KKwogMjAx
Ni0wMS0yNyAgUGVyIEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAg
W0ZUTF1bV2luNjRdIENvbXBpbGUgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmgKaW5kZXggMDIxNTllZDY0Yjk1OGFhNGQ5
NGNlOWEwMmIwN2Q2ZDIwOWJkYjVhYy4uNjgyNGJmMDlkMWYxOTBhOTIyYzAyNmFhZmY0NWMzZjMz
NDVhZmExNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXJDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4
aXRDb21waWxlckNvbW1vbi5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiREZHQ29tbW9u
RGF0YS5oIgogI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJGVExKSVRDb2RlLmgi
CisjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBE
RkcgewogCkBAIC00NCwyMiArNDUsNDAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIEpJVENvZGVUeXBl
Pgogdm9pZCBhZGp1c3RGcmFtZUFuZFN0YWNrSW5PU1JFeGl0Q29tcGlsZXJUaHVuayhNYWNyb0Fz
c2VtYmxlciYgaml0LCBWTSogdm0sIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSkKIHsKICAgICBB
U1NFUlQoaml0VHlwZSA9PSBKSVRDb2RlOjpERkdKSVQgfHwgaml0VHlwZSA9PSBKSVRDb2RlOjpG
VExKSVQpOwotICAgIHNpemVfdCBzY3JhdGNoU2l6ZSA9IHNpemVvZih2b2lkKik7CisKICAgICBi
b29sIGlzRlRMT1NSRXhpdCA9IGppdFR5cGUgPT0gSklUQ29kZTo6RlRMSklUOworICAgIFJlZ2lz
dGVyU2V0IHJlZ2lzdGVyc1RvUHJlc2VydmU7CisgICAgcmVnaXN0ZXJzVG9QcmVzZXJ2ZS5zZXQo
R1BSSW5mbzo6cmVnVDApOworICAgIGlmIChpc0ZUTE9TUkV4aXQpIHsKKyAgICAgICAgLy8gRlRM
IGNhbiB1c2UgdGhlIHNjcmF0Y2ggcmVnaXN0ZXJzIGZvciB2YWx1ZXMuIFRoZSBjb2RlIGJlbG93
IHVzZXMKKyAgICAgICAgLy8gdGhlIHNjcmF0Y2ggcmVnaXN0ZXJzLiBXZSBuZWVkIHRvIHByZXNl
cnZlIHRoZW0gYmVmb3JlIGRvaW5nIGFueXRoaW5nLgorICAgICAgICByZWdpc3RlcnNUb1ByZXNl
cnZlLm1lcmdlKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgfQor
CisgICAgc2l6ZV90IHNjcmF0Y2hTaXplID0gc2l6ZW9mKHZvaWQqKSAqIHJlZ2lzdGVyc1RvUHJl
c2VydmUubnVtYmVyT2ZTZXRHUFJzKCk7CiAgICAgaWYgKGlzRlRMT1NSRXhpdCkKICAgICAgICAg
c2NyYXRjaFNpemUgKz0gc2l6ZW9mKHZvaWQqKTsKIAogICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0
Y2hCdWZmZXIgPSB2bS0+c2NyYXRjaEJ1ZmZlckZvclNpemUoc2NyYXRjaFNpemUpOwogICAgIGNo
YXIqIGJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPihzY3JhdGNoQnVmZmVyLT5kYXRhQnVmZmVy
KCkpOwotICAgIGppdC5zdG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgYnVmZmVyKTsKKworICAgIGpp
dC5wdXNoVG9TYXZlKEdQUkluZm86OnJlZ1QxKTsKKyAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbVB0cihidWZmZXIpLCBHUFJJbmZvOjpyZWdUMSk7CisKKyAgICB1bnNpZ25l
ZCBzdG9yZU9mZnNldCA9IDA7CisgICAgcmVnaXN0ZXJzVG9QcmVzZXJ2ZS5mb3JFYWNoKFsmXShS
ZWcgcmVnKSB7CisgICAgICAgIGppdC5zdG9yZVB0cihyZWcuZ3ByKCksIE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBzdG9yZU9mZnNldCkpOworICAgICAgICBzdG9yZU9m
ZnNldCArPSBzaXplb2Yodm9pZCopOworICAgIH0pOwogCiAgICAgaWYgKGlzRlRMT1NSRXhpdCkg
ewogICAgICAgICAvLyBGVEwgT1NSRXhpdHMgYXJlIGVudGVyZWQgdmlhIHRoZSBjb2RlIEZUTEV4
aXRUaHVua0dlbmVyYXRvciBlbWl0cyB3aGljaCBkb2VzCiAgICAgICAgIC8vIHB1c2hUb1NhdmVJ
bW1lZGlhdGVXaXRob3V0VG91Y2hSZWdpc3RlcnMgd2l0aCB0aGUgT1NSIGV4aXQgaW5kZXguIFdl
IG5lZWQgdG8gbG9hZAogICAgICAgICAvLyB0aGF0IHRvcCB2YWx1ZSBhbmQgdGhlbiBwdXNoIGl0
IGJhY2sgd2hlbiB3ZSByZXNldCBvdXIgU1AuCi0gICAgICAgIGppdC5wZWVrKEdQUkluZm86OnJl
Z1QwKTsKLSAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBidWZmZXIgKyBzaXpl
b2Yodm9pZCopKTsKKyAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Mo
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBNYWNyb0Fzc2VtYmxlcjo6cHVz
aFRvU2F2ZUJ5dGVPZmZzZXQoKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0b3Jl
UHRyKEdQUkluZm86OnJlZ1QwLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhHUFJJbmZvOjpyZWdU
MSwgcmVnaXN0ZXJzVG9QcmVzZXJ2ZS5udW1iZXJPZlNldEdQUnMoKSAqIHNpemVvZih2b2lkKikp
KTsKICAgICB9CisgICAgaml0LnBvcFRvUmVzdG9yZShHUFJJbmZvOjpyZWdUMSk7CiAKICAgICAv
LyBXZSBuZWVkIHRvIHJlc2V0IEZQIGluIHRoZSBjYXNlIG9mIGFuIGV4Y2VwdGlvbi4KICAgICBq
aXQubG9hZFB0cih2bS0+YWRkcmVzc09mQ2FsbEZyYW1lRm9yQ2F0Y2goKSwgR1BSSW5mbzo6cmVn
VDApOwpAQCAtODUsMTQgKzEwNCwyNiBAQCB2b2lkIGFkanVzdEZyYW1lQW5kU3RhY2tJbk9TUkV4
aXRDb21waWxlclRodW5rKE1hY3JvQXNzZW1ibGVyJiBqaXQsIFZNKiB2bSwgSklUQwogICAgIGpp
dC5tb3ZlKEdQUkluZm86OnJlZ1QwLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwogCiAgICAgaWYgKGlzRlRMT1NSRXhpdCkgeworICAgICAgICAvLyBMZWF2ZSBzcGFjZSBm
b3Igc2F2aW5nIHRoZSBPU1IgRXhpdCBJbmRleC4KKyAgICAgICAgaml0LnN1YlB0cihNYWNyb0Fz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKE1hY3JvQXNzZW1ibGVyOjpwdXNoVG9TYXZlQnl0ZU9mZnNl
dCgpKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICB9CisgICAg
aml0LnB1c2hUb1NhdmUoR1BSSW5mbzo6cmVnVDEpOworCisgICAgaml0Lm1vdmUoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW1QdHIoYnVmZmVyKSwgR1BSSW5mbzo6cmVnVDEpOworICAgIGlmIChp
c0ZUTE9TUkV4aXQpIHsKICAgICAgICAgLy8gRlRMIE9TUkV4aXRzIGFyZSBlbnRlcmVkIHZpYSBG
VExFeGl0VGh1bmtHZW5lcmF0b3IgY29kZSB3aXRoIGRvZXMKICAgICAgICAgLy8gcHVzaFRvU2F2
ZUltbWVkaWF0ZVdpdGhvdXRUb3VjaFJlZ2lzdGVycy4gV2UgbmVlZCB0byBsb2FkIHRoYXQgdG9w
CiAgICAgICAgIC8vIHJlZ2lzdGVyIGFuZCB0aGVuIHN0b3JlIGl0IGJhY2sgd2hlbiB3ZSBoYXZl
IG91ciBTUCBiYWNrIHRvIGEgc2FmZSB2YWx1ZS4KLSAgICAgICAgaml0LmxvYWRQdHIoYnVmZmVy
ICsgc2l6ZW9mKHZvaWQqKSwgR1BSSW5mbzo6cmVnVDApOwotICAgICAgICBqaXQucHVzaFRvU2F2
ZShHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QxLCByZWdpc3RlcnNUb1ByZXNlcnZlLm51bWJlck9mU2V0R1BS
cygpICogc2l6ZW9mKHZvaWQqKSksIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgaml0LnN0b3Jl
UHRyKEdQUkluZm86OnJlZ1QwLCBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIE1hY3JvQXNzZW1ibGVyOjpwdXNoVG9TYXZlQnl0ZU9m
ZnNldCgpKSk7CiAgICAgfQogCi0gICAgaml0LmxvYWRQdHIoYnVmZmVyLCBHUFJJbmZvOjpyZWdU
MCk7CisgICAgdW5zaWduZWQgbG9hZE9mZnNldCA9IDA7CisgICAgcmVnaXN0ZXJzVG9QcmVzZXJ2
ZS5mb3JFYWNoKFsmXShSZWcgcmVnKSB7CisgICAgICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QxLCBsb2FkT2Zmc2V0KSwgcmVnLmdwcigpKTsKKyAg
ICAgICAgbG9hZE9mZnNldCArPSBzaXplb2Yodm9pZCopOworICAgIH0pOworICAgIGppdC5wb3BU
b1Jlc3RvcmUoR1BSSW5mbzo6cmVnVDEpOwogfQogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>