<?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>135143</bug_id>
          
          <creation_ts>2014-07-21 19:30:04 -0700</creation_ts>
          <short_desc>JSLock release should only modify the AtomicStringTable if it modified in acquire</short_desc>
          <delta_ts>2014-07-24 16:57:10 -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>135192</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023862</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-21 19:30:04 -0700</bug_when>
    <thetext>JSLock could have an imbalanced and unexpected change to the global thread data&apos;s AtomicStringTable.

The expected balance between JSLock::didAcquireLock and JSLock::willReleaseLock wouldn&apos;t happen if the VM was not set (during destruction of a VM).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023863</commentid>
    <comment_count>1</comment_count>
      <attachid>235264</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-21 19:34:48 -0700</bug_when>
    <thetext>Created attachment 235264
[PATCH] Proposed Fix

I have been trying to create a test for this but it is proving difficult.

My plan is to create a JSContext on a non-main thread (so a non-main AtomicStringTable), delete the JSContext on the main thread (such that JSLock would have unbalanced lock and release leaving the wrong AtomicStringTable). But it seems I&apos;m missing some complexity. In any case, the reproducible case I have (a larger application) reproduced the issue reliably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023867</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-21 19:48:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/17041912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023977</commentid>
    <comment_count>3</comment_count>
      <attachid>235264</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2014-07-22 10:25:14 -0700</bug_when>
    <thetext>Comment on attachment 235264
[PATCH] Proposed Fix

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

Patch looks fine to me but would be good if Geoff took a look as well.

&gt; Source/JavaScriptCore/runtime/JSLock.cpp:170
&gt; +    if (m_vm) {

Early return?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024083</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-22 15:10:41 -0700</bug_when>
    <thetext>r171367: &lt;http://trac.webkit.org/changeset/171367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024205</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-23 03:28:57 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 135192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024207</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 03:29:23 -0700</bug_when>
    <thetext>Stealing ap&apos;s message from the wrong bug:

&quot;This change broke three API tests, so I&apos;m going to roll out.

Tests that failed:
  WKUserContentController.ScriptMessageHandlerWithNavigation
  WebKit2.RestoreSessionStateContainingFormData
Tests that timed out:
  DeviceScaleFactorOnBack.WebKit2&quot;

The UI process is stuck in a HashTable lock adding a string to the AtomicString table from inside decidePolicyForResponse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024272</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-23 11:08:11 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Stealing ap&apos;s message from the wrong bug:
&gt; 
&gt; &quot;This change broke three API tests, so I&apos;m going to roll out.
&gt; 
&gt; Tests that failed:
&gt;   WKUserContentController.ScriptMessageHandlerWithNavigation
&gt;   WebKit2.RestoreSessionStateContainingFormData
&gt; Tests that timed out:
&gt;   DeviceScaleFactorOnBack.WebKit2&quot;

I can reproduce.

Thinking about things, now we might incorrectly balance in the opposite way after this change.

We need to handle what will happen if:
  - we acquire the lock with a vm (set the atomic string table)
  - m_vm gets cleared
  - we release the lock without a vm
    =&gt; we need to restore the atomic string table.

Making the appropriate changes the tests all pass. I need to test the original case and then I&apos;ll put up another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024320</commentid>
    <comment_count>8</comment_count>
      <attachid>235376</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-23 14:15:36 -0700</bug_when>
    <thetext>Created attachment 235376
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024324</commentid>
    <comment_count>9</comment_count>
      <attachid>235376</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-07-23 14:20:25 -0700</bug_when>
    <thetext>Comment on attachment 235376
[PATCH] Proposed Fix

What if we set the table on entry, and it was null on entry? How will it get back to null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024366</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-23 15:56:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 235376 [details])
&gt; What if we set the table on entry, and it was null on entry? How will it get back to null?

Good point. My understanding is that the WTFThreadData&apos;s AtomicStringTable can (and should) never be null. I could ASSERT that now, and perhaps ultimately we could move to references. Alternatively we could have a bool alongside the pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024526</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-07-24 10:06:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 235376 [details] [details])
&gt; &gt; What if we set the table on entry, and it was null on entry? How will it get back to null?
&gt; 
&gt; Good point. My understanding is that the WTFThreadData&apos;s AtomicStringTable can (and should) never be null. I could ASSERT that now, and perhaps ultimately we could move to references. Alternatively we could have a bool alongside the pointer.

It looks like WTFThreadData always sets a default table, so I think you&apos;re right. Let&apos;s ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024681</commentid>
    <comment_count>12</comment_count>
      <attachid>235474</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-24 16:55:54 -0700</bug_when>
    <thetext>Created attachment 235474
[PATCH] For Landing

Added ASSERTs. Re-ran my tests without a hitch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024682</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-07-24 16:57:10 -0700</bug_when>
    <thetext>r171558: &lt;http://trac.webkit.org/changeset/171558&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235264</attachid>
            <date>2014-07-21 19:34:48 -0700</date>
            <delta_ts>2014-07-23 14:15:36 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>jslock-1.patch</filename>
            <type>text/plain</type>
            <size>1622</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDc1NTJlZTQuLjQ0MjM1ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTA3LTIxICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgSlNMb2NrIHJlbGVhc2Ugc2hvdWxk
IG9ubHkgbW9kaWZ5IHRoZSBBdG9taWNTdHJpbmdUYWJsZSBpZiBpdCBtb2RpZmllZCBpbiBhY3F1
aXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUx
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjp3aWxsRGVzdHJveVZNKToK
KyAgICAgICAgKEpTQzo6SlNMb2NrOjp3aWxsUmVsZWFzZUxvY2spOgorICAgICAgICBPbmx5IHNl
dCB0aGUgQXRvbWljU3RyaW5nVGFibGUgd2hlbiB0aGVyZSB3YXMgYSBWTSwgdG8gYmFsYW5jZSBK
U0xvY2s6OmRpZEFjcXVpcmVMb2NrLgorCiAyMDE0LTA3LTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgRm9sbG93LXVwIGZpeCB0byByMTcxMTk1IHRv
IHByZXZlbnQgQVNTRVJUIGluIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0
bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IDIxMTRmMTUu
LmE1MzAzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAt
OTMsNyArOTMsNyBAQCBKU0xvY2s6On5KU0xvY2soKQogdm9pZCBKU0xvY2s6OndpbGxEZXN0cm95
Vk0oVk0qIHZtKQogewogICAgIEFTU0VSVF9VTlVTRUQodm0sIG1fdm0gPT0gdm0pOwotICAgIG1f
dm0gPSAwOworICAgIG1fdm0gPSBudWxscHRyOwogfQogCiB2b2lkIEpTTG9jazo6c2V0RXhjbHVz
aXZlVGhyZWFkKHN0ZDo6dGhyZWFkOjppZCB0aHJlYWRJZCkKQEAgLTE2NywxMCArMTY3LDExIEBA
IHZvaWQgSlNMb2NrOjp1bmxvY2soaW50cHRyX3QgdW5sb2NrQ291bnQpCiAKIHZvaWQgSlNMb2Nr
Ojp3aWxsUmVsZWFzZUxvY2soKQogewotICAgIGlmIChtX3ZtKQorICAgIGlmIChtX3ZtKSB7CiAg
ICAgICAgIG1fdm0tPnNldFN0YWNrUG9pbnRlckF0Vk1FbnRyeShudWxscHRyKTsKIAotICAgIHd0
ZlRocmVhZERhdGEoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUobV9lbnRyeUF0b21pY1N0
cmluZ1RhYmxlKTsKKyAgICAgICAgd3RmVGhyZWFkRGF0YSgpLnNldEN1cnJlbnRBdG9taWNTdHJp
bmdUYWJsZShtX2VudHJ5QXRvbWljU3RyaW5nVGFibGUpOworICAgIH0KIH0KIAogdm9pZCBKU0xv
Y2s6OmxvY2soRXhlY1N0YXRlKiBleGVjKQo=
</data>
<flag name="review"
          id="259823"
          type_id="1"
          status="+"
          setter="psolanki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235376</attachid>
            <date>2014-07-23 14:15:36 -0700</date>
            <delta_ts>2014-07-24 16:55:54 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>jslock-2.patch</filename>
            <type>text/plain</type>
            <size>2077</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZiNzEyNjAuLjRjNWNkMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA3LTIzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgSlNMb2NrIHJlbGVhc2Ugc2hvdWxk
IG9ubHkgbW9kaWZ5IHRoZSBBdG9taWNTdHJpbmdUYWJsZSBpZiBpdCBtb2RpZmllZCBpbiBhY3F1
aXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUx
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1
bnRpbWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpKU0xvY2spOgorICAgICAg
ICBJbml0aWFsaXplIHRoZSBtZW1iZXIgdmFyaWFibGUgdG8gbnVsbHB0ci4KKworICAgICAgICAo
SlNDOjpKU0xvY2s6OndpbGxEZXN0cm95Vk0pOgorICAgICAgICBVcGRhdGUgc3R5bGUgdG8gdXNl
IG51bGxwdHIgaW5zdGVhZCBvZiAwLgorCisgICAgICAgIChKU0M6OkpTTG9jazo6d2lsbFJlbGVh
c2VMb2NrKToKKyAgICAgICAgV2Ugc2hvdWxkIG9ubHkgcmVzZXQgdGhlIHRocmVhZCBkYXRhJ3Mg
YXRvbWljIHN0cmluZyB0YWJsZSBpZgorICAgICAgICBkaWRBY3F1aXJlTG9jayBjaGFuZ2VkIGl0
LiBtX2VudHJ5QXRvbWljU3RyaW5nVGFibGUgd2lsbCBoYXZlCisgICAgICAgIGJlZW4gc2V0IGJ5
IGRpZEFjcXVpcmVMb2NrIGlmIGl0IGNoYW5nZWQsIG9yIG51bGxwdHIgaWYgaXQgZGlkbid0Lgor
ICAgICAgICBUaGlzIHdheSB3ZSBhcmUgc3VyZSB3ZSBhcmUgYmFsYW5jZWQsIHJlZ2FyZGxlc3Mg
b2YgbV92bSBjaGFuZ2VzLgorCiAyMDE0LTA3LTIzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTcxNDgyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKaW5kZXggMjExNGYxNS4uNWIxMDk5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suY3BwCkBAIC04Myw2ICs4Myw3IEBA
IEpTTG9jazo6SlNMb2NrKFZNKiB2bSkKICAgICAsIG1fbG9ja0Ryb3BEZXB0aCgwKQogICAgICwg
bV9oYXNFeGNsdXNpdmVUaHJlYWQoZmFsc2UpCiAgICAgLCBtX3ZtKHZtKQorICAgICwgbV9lbnRy
eUF0b21pY1N0cmluZ1RhYmxlKG51bGxwdHIpCiB7CiB9CiAKQEAgLTkzLDcgKzk0LDcgQEAgSlNM
b2NrOjp+SlNMb2NrKCkKIHZvaWQgSlNMb2NrOjp3aWxsRGVzdHJveVZNKFZNKiB2bSkKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKHZtLCBtX3ZtID09IHZtKTsKLSAgICBtX3ZtID0gMDsKKyAgICBtX3Zt
ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBKU0xvY2s6OnNldEV4Y2x1c2l2ZVRocmVhZChzdGQ6OnRo
cmVhZDo6aWQgdGhyZWFkSWQpCkBAIC0xNzAsNyArMTcxLDEwIEBAIHZvaWQgSlNMb2NrOjp3aWxs
UmVsZWFzZUxvY2soKQogICAgIGlmIChtX3ZtKQogICAgICAgICBtX3ZtLT5zZXRTdGFja1BvaW50
ZXJBdFZNRW50cnkobnVsbHB0cik7CiAKLSAgICB3dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVudEF0
b21pY1N0cmluZ1RhYmxlKG1fZW50cnlBdG9taWNTdHJpbmdUYWJsZSk7CisgICAgaWYgKG1fZW50
cnlBdG9taWNTdHJpbmdUYWJsZSkgeworICAgICAgICB3dGZUaHJlYWREYXRhKCkuc2V0Q3VycmVu
dEF0b21pY1N0cmluZ1RhYmxlKG1fZW50cnlBdG9taWNTdHJpbmdUYWJsZSk7CisgICAgICAgIG1f
ZW50cnlBdG9taWNTdHJpbmdUYWJsZSA9IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIEpTTG9j
azo6bG9jayhFeGVjU3RhdGUqIGV4ZWMpCg==
</data>
<flag name="review"
          id="259950"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235474</attachid>
            <date>2014-07-24 16:55:54 -0700</date>
            <delta_ts>2014-07-24 16:56:35 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>final.patch</filename>
            <type>text/plain</type>
            <size>2571</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDhkNWRmZWUuLjIxOTM5MWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA3LTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgSlNMb2NrIHJlbGVhc2Ugc2hvdWxk
IG9ubHkgbW9kaWZ5IHRoZSBBdG9taWNTdHJpbmdUYWJsZSBpZiBpdCBtb2RpZmllZCBpbiBhY3F1
aXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzUx
NDMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHJ1bnRp
bWUvSlNMb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6SlNMb2NrOjpKU0xvY2spOgorICAgICAgICBJ
bml0aWFsaXplIHRoZSBtZW1iZXIgdmFyaWFibGUgdG8gbnVsbHB0ci4KKworICAgICAgICAoSlND
OjpKU0xvY2s6OndpbGxEZXN0cm95Vk0pOgorICAgICAgICBVcGRhdGUgc3R5bGUgdG8gdXNlIG51
bGxwdHIgaW5zdGVhZCBvZiAwLgorCisgICAgICAgIChKU0M6OkpTTG9jazo6d2lsbFJlbGVhc2VM
b2NrKToKKyAgICAgICAgV2Ugc2hvdWxkIG9ubHkgcmVzZXQgdGhlIHRocmVhZCBkYXRhJ3MgYXRv
bWljIHN0cmluZyB0YWJsZSBpZgorICAgICAgICBkaWRBY3F1aXJlTG9jayBjaGFuZ2VkIGl0LiBt
X2VudHJ5QXRvbWljU3RyaW5nVGFibGUgd2lsbCBoYXZlCisgICAgICAgIGJlZW4gc2V0IGJ5IGRp
ZEFjcXVpcmVMb2NrIGlmIGl0IGNoYW5nZWQsIG9yIG51bGxwdHIgaWYgaXQgZGlkbid0LgorICAg
ICAgICBUaGlzIHdheSB3ZSBhcmUgc3VyZSB3ZSBhcmUgYmFsYW5jZWQsIHJlZ2FyZGxlc3Mgb2Yg
bV92bSBjaGFuZ2VzLgorCiAyMDE0LTA3LTI0ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBmZWF0dXJlIGZsYWcgZm9yIGxvbmctcHJlc3Mg
Z2VzdHVyZSBvbiBNYWMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TG9jay5jcHAKaW5kZXggMjExNGYxNS4uYWY4ZTI3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0xvY2suY3BwCkBAIC04Myw2ICs4Myw3IEBAIEpTTG9jazo6SlNMb2NrKFZNKiB2
bSkKICAgICAsIG1fbG9ja0Ryb3BEZXB0aCgwKQogICAgICwgbV9oYXNFeGNsdXNpdmVUaHJlYWQo
ZmFsc2UpCiAgICAgLCBtX3ZtKHZtKQorICAgICwgbV9lbnRyeUF0b21pY1N0cmluZ1RhYmxlKG51
bGxwdHIpCiB7CiB9CiAKQEAgLTkzLDcgKzk0LDcgQEAgSlNMb2NrOjp+SlNMb2NrKCkKIHZvaWQg
SlNMb2NrOjp3aWxsRGVzdHJveVZNKFZNKiB2bSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHZtLCBt
X3ZtID09IHZtKTsKLSAgICBtX3ZtID0gMDsKKyAgICBtX3ZtID0gbnVsbHB0cjsKIH0KIAogdm9p
ZCBKU0xvY2s6OnNldEV4Y2x1c2l2ZVRocmVhZChzdGQ6OnRocmVhZDo6aWQgdGhyZWFkSWQpCkBA
IC0xMzksNyArMTQwLDEwIEBAIHZvaWQgSlNMb2NrOjpkaWRBY3F1aXJlTG9jaygpCiAgICAgV1RG
VGhyZWFkRGF0YSYgdGhyZWFkRGF0YSA9IHd0ZlRocmVhZERhdGEoKTsKICAgICBtX3ZtLT5zZXRM
YXN0U3RhY2tUb3AodGhyZWFkRGF0YS5zYXZlZExhc3RTdGFja1RvcCgpKTsKIAorICAgIEFTU0VS
VCghbV9lbnRyeUF0b21pY1N0cmluZ1RhYmxlKTsKICAgICBtX2VudHJ5QXRvbWljU3RyaW5nVGFi
bGUgPSB0aHJlYWREYXRhLnNldEN1cnJlbnRBdG9taWNTdHJpbmdUYWJsZShtX3ZtLT5hdG9taWNT
dHJpbmdUYWJsZSgpKTsKKyAgICBBU1NFUlQobV9lbnRyeUF0b21pY1N0cmluZ1RhYmxlKTsKKwog
ICAgIG1fdm0tPmhlYXAubWFjaGluZVRocmVhZHMoKS5hZGRDdXJyZW50VGhyZWFkKCk7CiB9CiAK
QEAgLTE3MCw3ICsxNzQsMTAgQEAgdm9pZCBKU0xvY2s6OndpbGxSZWxlYXNlTG9jaygpCiAgICAg
aWYgKG1fdm0pCiAgICAgICAgIG1fdm0tPnNldFN0YWNrUG9pbnRlckF0Vk1FbnRyeShudWxscHRy
KTsKIAotICAgIHd0ZlRocmVhZERhdGEoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUobV9l
bnRyeUF0b21pY1N0cmluZ1RhYmxlKTsKKyAgICBpZiAobV9lbnRyeUF0b21pY1N0cmluZ1RhYmxl
KSB7CisgICAgICAgIHd0ZlRocmVhZERhdGEoKS5zZXRDdXJyZW50QXRvbWljU3RyaW5nVGFibGUo
bV9lbnRyeUF0b21pY1N0cmluZ1RhYmxlKTsKKyAgICAgICAgbV9lbnRyeUF0b21pY1N0cmluZ1Rh
YmxlID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIHZvaWQgSlNMb2NrOjpsb2NrKEV4ZWNTdGF0ZSog
ZXhlYykK
</data>

          </attachment>
      

    </bug>

</bugzilla>