<?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>145709</bug_id>
          
          <creation_ts>2015-06-05 12:51:55 -0700</creation_ts>
          <short_desc>Subclasses of JSNonFinalObject with gc&apos;able children need to implement visitChildren()</short_desc>
          <delta_ts>2015-06-05 17:34:52 -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></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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099910</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 12:51:55 -0700</bug_when>
    <thetext>The ClonedArguments class is missing a visitChildren.  Ditto for the Element class in jsc.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099912</commentid>
    <comment_count>1</comment_count>
      <attachid>254374</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 12:59:41 -0700</bug_when>
    <thetext>Created attachment 254374
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099946</commentid>
    <comment_count>2</comment_count>
      <attachid>254374</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-06-05 14:28:02 -0700</bug_when>
    <thetext>Comment on attachment 254374
the patch.

r=me

ClonedArguments should be testable. Just allocate a lot of function.arguments for transient function objects, then force gc, and then access .callee on each one. You&apos;ll crash pretty quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099948</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 14:29:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; ClonedArguments should be testable. Just allocate a lot of
&gt; function.arguments for transient function objects, then force gc, and then
&gt; access .callee on each one. You&apos;ll crash pretty quickly.

k, I’ll work on a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100002</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 16:02:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; ClonedArguments should be testable. Just allocate a lot of
&gt; function.arguments for transient function objects, then force gc, and then
&gt; access .callee on each one. You&apos;ll crash pretty quickly.

Actually, this turned out to be harder than we thought.  Here&apos;s why:
1. With one exception (the StackVisitor), ClonedArguments are only created by op_create_out_of_band_arguments.

2. The BytecodeGenerator will only emit an op_create_out_of_band_arguments if the function is in strict mode.

3. Since ES5, access to arguments.callee is forbidden for a strict mode function.  See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee).

Hence, I can&apos;t get a scenario in JS code where I can naturally see this issue manifest.

I mentioned that there was an exception i.e. the StackVisitor, which returns a ClonedArguments object when StackVisitor::arguments() is called.  The remaining question is whether we can build a case around the use of StackVisitor::arguments().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100017</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 16:55:38 -0700</bug_when>
    <thetext>I&apos;ve found a way to reproduce this now.  The StackVisitor:;Frame::createArguments() (not StackVisitor::arguments()) lead takes me to Function.arguments which does reproduce the issue without strict mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100023</commentid>
    <comment_count>6</comment_count>
      <attachid>254399</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 17:25:17 -0700</bug_when>
    <thetext>Created attachment 254399
patch for landing with test added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100027</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-05 17:34:52 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r185277: &lt;http://trac.webkit.org/r185277&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254374</attachid>
            <date>2015-06-05 12:59:41 -0700</date>
            <delta_ts>2015-06-05 17:25:17 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-145709.patch</filename>
            <type>text/plain</type>
            <size>4678</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1MjYxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE1LTA2LTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dWJjbGFzc2VzIG9mIEpTTm9uRmluYWxPYmplY3Qgd2l0aCBnYydhYmxlIGNoaWxkcmVuIG5lZWQg
dG8gaW1wbGVtZW50IHZpc2l0Q2hpbGRyZW4oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTcwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uU2V0RWxl
bWVudFJvb3QpOgorICAgICAgICAtIFRoZSBFbGVtZW50IGNsYXNzIGhhcyBhIG1lbWJlciBvZiB0
eXBlIFJvb3Qgd2hpY2ggZXh0ZW5kcyBKU0Rlc3RydWN0aWJsZU9iamVjdC4KKyAgICAgICAgICBJ
dCBzaG91bGQgYmUgc3RvcmVkIGluIGEgV3JpdGVCYXJyaWVyLCBhbmQgdmlzaXRlZCBieSB2aXNp
dENoaWxkcmVuKCkuICAKKworICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2xvbmVkQXJndW1lbnRzOjptYXRlcmlhbGl6ZVNwZWNpYWxzSWZOZWNl
c3NhcnkpOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6OnZpc2l0Q2hpbGRyZW4pOgor
ICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmg6CisgICAgICAgIC0gQWRkIG1pc3Np
bmcgdmlzaXRDaGlsZHJlbigpLgorCiAyMDE1LTA2LTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBmaW5hbGx5IGJsb2NrcyBzaG91bGQgbm90IHNldCB0aGUgZXhj
ZXB0aW9uIHN0YWNrIHRyYWNlIHdoZW4gcmUtdGhyb3dpbmcgdGhlIGV4Y2VwdGlvbi4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxODUyNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDI3ICsxMzAsMzQgQEAgY2xhc3Mg
UnVudGltZUFycmF5OwogCiBjbGFzcyBFbGVtZW50IDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgotICAgIEVsZW1lbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUm9v
dCogcm9vdCkKKyAgICBFbGVtZW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgICAgICAsIG1fcm9vdChyb290KQogICAgIHsK
ICAgICB9CiAKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAKLSAgICBSb290KiByb290KCkg
Y29uc3QgeyByZXR1cm4gbV9yb290OyB9Ci0gICAgdm9pZCBzZXRSb290KFJvb3QqIHJvb3QpIHsg
bV9yb290ID0gcm9vdDsgfQorICAgIFJvb3QqIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jvb3Qu
Z2V0KCk7IH0KKyAgICB2b2lkIHNldFJvb3QoVk0mIHZtLCBSb290KiByb290KSB7IG1fcm9vdC5z
ZXQodm0sIHRoaXMsIHJvb3QpOyB9CiAKICAgICBzdGF0aWMgRWxlbWVudCogY3JlYXRlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUm9vdCogcm9vdCkKICAgICB7CiAgICAg
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gY3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmpl
Y3QsIGpzTnVsbCgpKTsKLSAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG5ldyAoTm90TnVsbCwg
YWxsb2NhdGVDZWxsPEVsZW1lbnQ+KHZtLmhlYXAsIHNpemVvZihFbGVtZW50KSkpIEVsZW1lbnQo
dm0sIHN0cnVjdHVyZSwgcm9vdCk7Ci0gICAgICAgIGVsZW1lbnQtPmZpbmlzaENyZWF0aW9uKHZt
KTsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxs
PEVsZW1lbnQ+KHZtLmhlYXAsIHNpemVvZihFbGVtZW50KSkpIEVsZW1lbnQodm0sIHN0cnVjdHVy
ZSk7CisgICAgICAgIGVsZW1lbnQtPmZpbmlzaENyZWF0aW9uKHZtLCByb290KTsKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQ7CiAgICAgfQogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBSb290Kik7CisKKyAgICBzdGF0aWMgdm9pZCB2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAgewor
ICAgICAgICBFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNDYXN0PEVsZW1lbnQqPihjZWxsKTsKKyAg
ICAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAg
ICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgICAgICB2
aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9yb290KTsKKyAgICB9CiAKICAgICBzdGF0aWMg
RWxlbWVudEhhbmRsZU93bmVyKiBoYW5kbGVPd25lcigpOwogCkBAIC0xNjIsNyArMTY5LDcgQEAg
cHVibGljOgogICAgIERFQ0xBUkVfSU5GTzsKIAogcHJpdmF0ZToKLSAgICBSb290KiBtX3Jvb3Q7
CisgICAgV3JpdGVCYXJyaWVyPFJvb3Q+IG1fcm9vdDsKIH07CiAKIGNsYXNzIEVsZW1lbnRIYW5k
bGVPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewpAQCAtNDIxLDkgKzQyOCwxMCBAQCBF
bGVtZW50SGFuZGxlT3duZXIqIEVsZW1lbnQ6OmhhbmRsZU93bmVyCiAgICAgcmV0dXJuIG93bmVy
OwogfQogCi12b2lkIEVsZW1lbnQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3ZvaWQgRWxlbWVu
dDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBSb290KiByb290KQogewogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKKyAgICBzZXRSb290KHZtLCByb290KTsKICAgICBtX3Jvb3QtPnNldEVs
ZW1lbnQodGhpcyk7CiB9CiAKQEAgLTc4Niw3ICs3OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uU2V0CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAgICAg
RWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxFbGVtZW50Kj4oZXhlYy0+YXJndW1lbnQoMCkpOwog
ICAgIFJvb3QqIHJvb3QgPSBqc0Nhc3Q8Um9vdCo+KGV4ZWMtPmFyZ3VtZW50KDEpKTsKLSAgICBl
bGVtZW50LT5zZXRSb290KHJvb3QpOworICAgIGVsZW1lbnQtPnNldFJvb3QoZXhlYy0+dm0oKSwg
cm9vdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRBcmd1bWVu
dHMuY3BwCShyZXZpc2lvbiAxODUyNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9DbG9uZWRBcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNSArMjE4LDEzIEBA
IHZvaWQgQ2xvbmVkQXJndW1lbnRzOjptYXRlcmlhbGl6ZVNwZWNpYWwKICAgICAgICAgbWF0ZXJp
YWxpemVTcGVjaWFscyhleGVjKTsKIH0KIAordm9pZCBDbG9uZWRBcmd1bWVudHM6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBDbG9uZWRB
cmd1bWVudHMqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Q2xvbmVkQXJndW1lbnRzKj4oY2VsbCk7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEJh
c2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5hcHBl
bmQoJnRoaXNPYmplY3QtPm1fY2FsbGVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5o
CShyZXZpc2lvbiAxODUyNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9u
ZWRBcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKKyAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxk
cmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisKICAgICBERUNMQVJFX0lORk87CiAKIHByaXZh
dGU6Cg==
</data>
<flag name="review"
          id="279355"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="279356"
          type_id="3"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254399</attachid>
            <date>2015-06-05 17:25:17 -0700</date>
            <delta_ts>2015-06-05 17:25:17 -0700</delta_ts>
            <desc>patch for landing with test added</desc>
            <filename>bug-145709.patch</filename>
            <type>text/plain</type>
            <size>6196</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1Mjc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE1LTA2LTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBT
dWJjbGFzc2VzIG9mIEpTTm9uRmluYWxPYmplY3Qgd2l0aCBnYydhYmxlIGNoaWxkcmVuIG5lZWQg
dG8gaW1wbGVtZW50IHZpc2l0Q2hpbGRyZW4oKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTcwOQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
cmV5IEdhcmVuLgorCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uU2V0RWxl
bWVudFJvb3QpOgorICAgICAgICAtIFRoZSBFbGVtZW50IGNsYXNzIGhhcyBhIG1lbWJlciBvZiB0
eXBlIFJvb3Qgd2hpY2ggZXh0ZW5kcyBKU0Rlc3RydWN0aWJsZU9iamVjdC4KKyAgICAgICAgICBJ
dCBzaG91bGQgYmUgc3RvcmVkIGluIGEgV3JpdGVCYXJyaWVyLCBhbmQgdmlzaXRlZCBieSB2aXNp
dENoaWxkcmVuKCkuICAKKworICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNwcDoK
KyAgICAgICAgKEpTQzo6Q2xvbmVkQXJndW1lbnRzOjptYXRlcmlhbGl6ZVNwZWNpYWxzSWZOZWNl
c3NhcnkpOgorICAgICAgICAoSlNDOjpDbG9uZWRBcmd1bWVudHM6OnZpc2l0Q2hpbGRyZW4pOgor
ICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmg6CisgICAgICAgIC0gQWRkIG1pc3Np
bmcgdmlzaXRDaGlsZHJlbigpLgorCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Nsb25lZC1hcmd1
bWVudHMtc2hvdWxkLXZpc2l0LWNhbGxlZS1kdXJpbmctZ2MuanM6IEFkZGVkLgorICAgICAgICAo
bWFrZVRyYW5zaWVudEZ1bmN0aW9uLnRyYW5zaWVudEZ1bmMpOgorICAgICAgICAobWFrZVRyYW5z
aWVudEZ1bmN0aW9uKToKKwogMjAxNS0wNi0wNSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIERyb3BBbGxMb2NrcyBSRUxFQVNFX0FTU0VSVCBvbiBpT1MKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxODUyNjEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMwLDI3ICsxMzAsMzQgQEAgY2xh
c3MgUnVudGltZUFycmF5OwogCiBjbGFzcyBFbGVtZW50IDogcHVibGljIEpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgotICAgIEVsZW1lbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Um9vdCogcm9vdCkKKyAgICBFbGVtZW50KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQotICAgICAgICAsIG1fcm9vdChyb290KQogICAg
IHsKICAgICB9CiAKICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CiAKLSAgICBSb290KiByb290
KCkgY29uc3QgeyByZXR1cm4gbV9yb290OyB9Ci0gICAgdm9pZCBzZXRSb290KFJvb3QqIHJvb3Qp
IHsgbV9yb290ID0gcm9vdDsgfQorICAgIFJvb3QqIHJvb3QoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3QuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFJvb3QoVk0mIHZtLCBSb290KiByb290KSB7IG1fcm9v
dC5zZXQodm0sIHRoaXMsIHJvb3QpOyB9CiAKICAgICBzdGF0aWMgRWxlbWVudCogY3JlYXRlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUm9vdCogcm9vdCkKICAgICB7CiAg
ICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gY3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxP
YmplY3QsIGpzTnVsbCgpKTsKLSAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG5ldyAoTm90TnVs
bCwgYWxsb2NhdGVDZWxsPEVsZW1lbnQ+KHZtLmhlYXAsIHNpemVvZihFbGVtZW50KSkpIEVsZW1l
bnQodm0sIHN0cnVjdHVyZSwgcm9vdCk7Ci0gICAgICAgIGVsZW1lbnQtPmZpbmlzaENyZWF0aW9u
KHZtKTsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVD
ZWxsPEVsZW1lbnQ+KHZtLmhlYXAsIHNpemVvZihFbGVtZW50KSkpIEVsZW1lbnQodm0sIHN0cnVj
dHVyZSk7CisgICAgICAgIGVsZW1lbnQtPmZpbmlzaENyZWF0aW9uKHZtLCByb290KTsKICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgfQogCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYp
OworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBSb290Kik7CisKKyAgICBzdGF0aWMgdm9p
ZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCisgICAg
eworICAgICAgICBFbGVtZW50KiB0aGlzT2JqZWN0ID0ganNDYXN0PEVsZW1lbnQqPihjZWxsKTsK
KyAgICAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwor
ICAgICAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOworICAgICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9yb290KTsKKyAgICB9CiAKICAgICBzdGF0
aWMgRWxlbWVudEhhbmRsZU93bmVyKiBoYW5kbGVPd25lcigpOwogCkBAIC0xNjIsNyArMTY5LDcg
QEAgcHVibGljOgogICAgIERFQ0xBUkVfSU5GTzsKIAogcHJpdmF0ZToKLSAgICBSb290KiBtX3Jv
b3Q7CisgICAgV3JpdGVCYXJyaWVyPFJvb3Q+IG1fcm9vdDsKIH07CiAKIGNsYXNzIEVsZW1lbnRI
YW5kbGVPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewpAQCAtNDIxLDkgKzQyOCwxMCBA
QCBFbGVtZW50SGFuZGxlT3duZXIqIEVsZW1lbnQ6OmhhbmRsZU93bmVyCiAgICAgcmV0dXJuIG93
bmVyOwogfQogCi12b2lkIEVsZW1lbnQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKK3ZvaWQgRWxl
bWVudDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBSb290KiByb290KQogewogICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKHZtKTsKKyAgICBzZXRSb290KHZtLCByb290KTsKICAgICBtX3Jvb3QtPnNl
dEVsZW1lbnQodGhpcyk7CiB9CiAKQEAgLTc4Niw3ICs3OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CiAg
ICAgRWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxFbGVtZW50Kj4oZXhlYy0+YXJndW1lbnQoMCkp
OwogICAgIFJvb3QqIHJvb3QgPSBqc0Nhc3Q8Um9vdCo+KGV4ZWMtPmFyZ3VtZW50KDEpKTsKLSAg
ICBlbGVtZW50LT5zZXRSb290KHJvb3QpOworICAgIGVsZW1lbnQtPnNldFJvb3QoZXhlYy0+dm0o
KSwgcm9vdCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbG9uZWRBcmd1
bWVudHMuY3BwCShyZXZpc2lvbiAxODUyNjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DbG9uZWRBcmd1bWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNSArMjE4LDEz
IEBAIHZvaWQgQ2xvbmVkQXJndW1lbnRzOjptYXRlcmlhbGl6ZVNwZWNpYWwKICAgICAgICAgbWF0
ZXJpYWxpemVTcGVjaWFscyhleGVjKTsKIH0KIAordm9pZCBDbG9uZWRBcmd1bWVudHM6OnZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBDbG9u
ZWRBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Q2xvbmVkQXJndW1lbnRzKj4oY2VsbCk7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fY2FsbGVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50
cy5oCShyZXZpc2lvbiAxODUyNjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
bG9uZWRBcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6
CiAgICAgCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKKyAgICBzdGF0aWMgdm9pZCB2aXNpdENo
aWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisKICAgICBERUNMQVJFX0lORk87CiAKIHBy
aXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Nsb25lZC1h
cmd1bWVudHMtc2hvdWxkLXZpc2l0LWNhbGxlZS1kdXJpbmctZ2MuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9jbG9uZWQtYXJndW1lbnRzLXNob3Vs
ZC12aXNpdC1jYWxsZWUtZHVyaW5nLWdjLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9jbG9uZWQtYXJndW1lbnRzLXNob3VsZC12aXNpdC1jYWxs
ZWUtZHVyaW5nLWdjLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8vIFRlc3Qg
dGhhdCB0aGUgQ2xvbmVkQXJndW1lbnRzIGNyZWF0ZWQgYnkgdGhlIEZ1bmN0aW9uLmFyZ3VtZW50
cyB3aWxsIHByb3Blcmx5CisvLyBrZWVwIGl0cyBjYWxsZWUgYWxpdmUuICBUaGlzIHRlc3Qgc2hv
dWxkIG5vdCBjcmFzaCBhbmQgc2hvdWxkIG5vdCBwcmludCBhbnkgZXJyb3IKKy8vIG1lc3NhZ2Vz
LgorCit2YXIgY2FjaGVkQXJndW1lbnRzID0gW107Cit2YXIgbnVtYmVyT2ZFbnRyaWVzID0gMTAw
MDsKKworZnVuY3Rpb24gbWFrZVRyYW5zaWVudEZ1bmN0aW9uKGkpIHsKKyAgICBmdW5jdGlvbiB0
cmFuc2llbnRGdW5jKCkgeworICAgICAgICBjYWNoZWRBcmd1bWVudHNbaV0gPSB0cmFuc2llbnRG
dW5jLmFyZ3VtZW50czsKKyAgICB9CisgICAgcmV0dXJuIHRyYW5zaWVudEZ1bmM7Cit9CisKK2Zv
ciAoaSA9IDA7IGkgPCBudW1iZXJPZkVudHJpZXM7IGkrKykgeworICAgIHZhciB0cmFuc2llbnRG
dW5jID0gbWFrZVRyYW5zaWVudEZ1bmN0aW9uKGkpOworICAgIHRyYW5zaWVudEZ1bmMoKTsKKyAg
ICAvLyBBdCB0aGlzIHBvaW50LCB0aGUgb25seSByZWZlcmVuY2UgdG8gdGhlIHRyYW5zaWVudCBm
dW5jdGlvbiBpcyBmcm9tCisgICAgLy8gY2FjaGVkQXJndW1lbnRzW2ldLmNhbGxlZS4KK30KKwor
Z2MoKTsKKworLy8gQWxsb2NhdGUgYSBidW5jaCBvZiBtZW1vcnkgdG8gc3RvbXAgb3ZlciB0aGUg
dHJhbnNpZW50IGZ1bmN0aW9ucyB0aGF0IG1heSBoYXZlIGJlZW4KKy8vIGVycm9uZW91c2x5IGNv
bGxlY3RlZC4gd2Via2l0Lm9yZy9iLzE0NTcwOQorZm9yIChpID0gMDsgaSA8IG51bWJlck9mRW50
cmllczsgaSsrKSB7CisgICAgbmV3IE9iamVjdCgpOworfQorCitmb3IgKGkgPSAwOyBpIDwgbnVt
YmVyT2ZFbnRyaWVzOyBpKyspIHsKKyAgICB2YXIgY2FsbGVlID0gY2FjaGVkQXJndW1lbnRzW2ld
LmNhbGxlZTsKKyAgICBpZiAodHlwZW9mIGNhbGxlZSAhPSAiZnVuY3Rpb24iKQorICAgICAgICBw
cmludCgiRVJST1I6IGNhbGxlZSBpcyAiICsgY2FsbGVlKTsgCit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>