<?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>158791</bug_id>
          
          <creation_ts>2016-06-15 10:23:00 -0700</creation_ts>
          <short_desc>ArraySetLength should coerce [[Value]] before descriptor validation</short_desc>
          <delta_ts>2020-09-14 13:48:59 -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>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="André Bargull">andre.bargull</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1202610</commentid>
    <comment_count>0</comment_count>
    <who name="André Bargull">andre.bargull</who>
    <bug_when>2016-06-15 10:23:00 -0700</bug_when>
    <thetext>SVN: rev202088
Build with: perl Tools/Scripts/build-jsc --gtk --debug


The following test case triggers this assertion error:
---
ASSERTION FAILED: isLengthWritable() || !writable
---


Test case:
---
var a = [];
Object.defineProperty(a, &quot;length&quot;, {
  writable: true,
  value: {
    valueOf() {
      Object.defineProperty(a, &quot;length&quot;, {writable: false});
      return 0;
    }
  }
});
---


Stack trace:
---
#0  0x00007ffff6de7098 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:317
#1  0x00007ffff6b8f827 in JSC::JSArray::setLengthWritable (this=0x7fffaf1c7ed0, exec=0x7fffffffcb20, writable=true)
    at ../../Source/JavaScriptCore/runtime/JSArray.cpp:65
#2  0x00007ffff6b8fc31 in JSC::JSArray::defineOwnProperty (object=0x7fffaf1c7ed0, exec=0x7fffffffcb20, propertyName=..., descriptor=..., throwException=true)
    at ../../Source/JavaScriptCore/runtime/JSArray.cpp:118
#3  0x00007ffff6c8d2f2 in JSC::objectConstructorDefineProperty (exec=0x7fffffffcb20) at ../../Source/JavaScriptCore/runtime/ObjectConstructor.cpp:433
#4  0x00007fffb0bff028 in ?? ()
#5  0x00007fffffffcba0 in ?? ()
#6  0x00007ffff69f26a1 in llint_entry () at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:1054
---</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202774</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-15 17:17:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/26826784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202900</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-06-16 03:36:33 -0700</bug_when>
    <thetext>interesting. ToUint32(Desc.[[Value]]) causes the invocation of valueOf, and it changes the writablility of the &quot;length&quot; prop during [[DefineOwnProperty]].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688147</commentid>
    <comment_count>3</comment_count>
      <attachid>408664</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-13 14:22:07 -0700</bug_when>
    <thetext>Created attachment 408664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688403</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-14 13:48:41 -0700</bug_when>
    <thetext>Committed r267037: &lt;https://trac.webkit.org/changeset/267037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688404</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-14 13:48:59 -0700</bug_when>
    <thetext>Thank you for taking time to review this, Darin! It&apos;s not very easy to vet spec compliance here.

There is a similar bug in SpiderMonkey with [[Set]] + unchanged length: test262 coverage update is on the way.
Also, we might consider tweaking the spec to a) remove step 12 and b) always set [[Writable]]: false separately.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408664</attachid>
            <date>2020-09-13 14:22:07 -0700</date>
            <delta_ts>2020-09-13 15:43:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158791-20200914002205.patch</filename>
            <type>text/plain</type>
            <size>12892</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNjY5OTkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTA5LTEzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBBcnJheVNldExlbmd0aCBzaG91bGQgY29lcmNlIFtbVmFs
dWVdXSBiZWZvcmUgZGVzY3JpcHRvciB2YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg3OTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6IE1h
cmsgNCB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDktMTEgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDYW5vbmljYWxpemUgInRydWUi
IHVuaWNvZGUgZXh0ZW5zaW9uIHR5cGUgdmFsdWUgdG8gIiIKSW5kZXg6IEpTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0
YXRpb25zLnlhbWwJKHJldmlzaW9uIDI2Njk3OCkKKysrIEpTVGVzdHMvdGVzdDI2Mi9leHBlY3Rh
dGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtNjAzLDEyICs2MDMsNiBAQCB0ZXN0L2FubmV4
Qi9sYW5ndWFnZS9nbG9iYWwtY29kZS9zd2l0Y2gtCiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6
IEFuIGluaXRpYWxpemVkIGJpbmRpbmcgaXMgbm90IGNyZWF0ZWQgcHJpb3IgdG8gZXZhbHVhdGlv
biBFeHBlY3RlZCBhIFJlZmVyZW5jZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsJwogdGVzdC9hbm5leEIvbGFuZ3VhZ2UvZ2xvYmFsLWNvZGUvc3dp
dGNoLWRmbHQtZ2xvYmFsLXNraXAtZWFybHktZXJyLmpzOgogICBkZWZhdWx0OiAiU3ludGF4RXJy
b3I6IENhbm5vdCBkZWNsYXJlIGEgZnVuY3Rpb24gdGhhdCBzaGFkb3dzIGEgbGV0L2NvbnN0L2Ns
YXNzL2Z1bmN0aW9uIHZhcmlhYmxlICdmJyBpbiBzdHJpY3QgbW9kZS4iCi10ZXN0L2J1aWx0LWlu
cy9BcnJheS9sZW5ndGgvZGVmaW5lLW93bi1wcm9wLWxlbmd0aC1jb2VyY2lvbi1vcmRlci5qczoK
LSAgZGVmYXVsdDogJ0JhZCBleGl0IGNvZGU6IDExJwotICBzdHJpY3QgbW9kZTogJ0JhZCBleGl0
IGNvZGU6IDExJwotdGVzdC9idWlsdC1pbnMvQXJyYXkvbGVuZ3RoL2RlZmluZS1vd24tcHJvcC1s
ZW5ndGgtb3ZlcmZsb3ctb3JkZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgUmFuZ2VFcnJvciBidXQgZ290IGEgVHlwZUVycm9yJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBSYW5nZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCiB0
ZXN0L2J1aWx0LWlucy9BcnJheS9wcm90b3R5cGUvbWV0aG9kcy1jYWxsZWQtYXMtZnVuY3Rpb25z
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBlbnRyaWVzIEV4cGVjdGVkIGEgVHlwZUVy
cm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsJwogICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogZW50cmllcyBFeHBlY3RlZCBhIFR5cGVFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCcKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY2OTc4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA5
LTEzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBB
cnJheVNldExlbmd0aCBzaG91bGQgY29lcmNlIFtbVmFsdWVdXSBiZWZvcmUgZGVzY3JpcHRvciB2
YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTg3OTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoOgorCisgICAgICAgIDEuIE1vdmVzIFtbVmFsdWVdXSBjb2VyY2lvbiBiZWZv
cmUgZGVzY3JpcHRvciB2YWxpZGF0aW9uIGFzIHBlciBzcGVjIFsxXSwKKyAgICAgICAgICAgd2hp
Y2ggZml4ZXMgQVNTRVJUKCkgZmFpbHVyZSBhbmQgYWxpZ25zIEpTQyB3aXRoIFY4ICYgU3BpZGVy
TW9ua2V5LgorCisgICAgICAgIDIuIFByZXZlbnRzIEpTQXJyYXk6OnNldExlbmd0aFdpdGhBcnJh
eVN0b3JhZ2UoKSBmcm9tIHRocm93aW5nIGlmIHRoZSBsZW5ndGgKKyAgICAgICAgICAgaXMgdW5j
aGFuZ2VkLCBldmVuIGlmIGl0J3MgcmVhZC1vbmx5IFsyXS4KKworICAgICAgICAzLiBSZWZhY3Rv
cnMgSlNBcnJheTo6ZGVmaW5lT3duUHJvcGVydHkoKSBsZXZlcmFnaW5nICMyIHRvIGFsd2F5cyBw
ZXJmb3JtCisgICAgICAgICAgIHNldExlbmd0aCgpLCB3aGljaCBncmVhdGx5IHJlZHVjZXMgdGhl
IG51bWJlciBvZiBjaGVja3MsIGJyYW5jaGVzLAorICAgICAgICAgICBhbmQgc2V0TGVuZ3RoV3Jp
dGFibGUoKSBjYWxscy4KKworICAgICAgICBGb2xsb3dpbmcgdGhlIEFycmF5U2V0TGVuZ3RoIHNw
ZWMgc3RlcHMgcHJlY2lzZWx5IFsxXSB3b3VsZCByZXN1bHQgaW4KKyAgICAgICAgbW9yZSBkaWZm
aWN1bHQtdG8tZm9sbG93IGNvZGUgYmVjYXVzZSBkZXNjcmlwdG9yIHZhbGlkYXRpb24gWzJdIGlz
IGlubGluZWQKKyAgICAgICAgYW5kIFtbRGVsZXRlXV0gZmFpbHVyZXMgYXJlIGhhbmRsZWQgaW4g
c2V0TGVuZ3RoKCkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaXMgcGVyZm9ybWFuY2UtbmV1dHJh
bCBhcyBpdCBkb2Vzbid0IGFmZmVjdCBKU0FycmF5OjpwdXQoKSwKKyAgICAgICAgd2hpY2ggd2Fz
IHZldHRlZCB0byBiZSBzcGVjLWNvbXBsaWFudCBhbmQgaXMgY292ZXJlZCBieSB0ZXN0MjYyIHN1
aXRlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNl
dGxlbmd0aCAoc3RlcHMgMy00KQorICAgICAgICBbMl06IGh0dHBzOi8vdGMzOS5lcy9lY21hMjYy
LyNzZWMtdmFsaWRhdGVhbmRhcHBseXByb3BlcnR5ZGVzY3JpcHRvciAoc3RlcCA3LmEuaWkpCisK
KyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5Ojpk
ZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OnNldExlbmd0aFdpdGhB
cnJheVN0b3JhZ2UpOgorCiAyMDIwLTA5LTExICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0pTQ10gQ2Fub25pY2FsaXplICJ0cnVlIiB1bmljb2RlIGV4dGVu
c2lvbiB0eXBlIHZhbHVlIHRvICIiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAkocmV2aXNpb24gMjY2OTc4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCB2
b2lkIEpTQXJyYXk6OnNldExlbmd0aFdyaXRhYmxlKEpTR2xvYmFsCiAgICAgbWFwLT5zZXRMZW5n
dGhJc1JlYWRPbmx5KCk7CiB9CiAKLS8vIERlZmluZWQgaW4gRVM1LjEgMTUuNC41LjEKKy8vIGh0
dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXktZXhvdGljLW9iamVjdHMtZGVmaW5lb3du
cHJvcGVydHktcC1kZXNjCiBib29sIEpTQXJyYXk6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCB0aHJv
d0V4Y2VwdGlvbikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNDks
ODggKzE0OSw1MyBAQCBib29sIEpTQXJyYXk6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0CiAK
ICAgICBKU0FycmF5KiBhcnJheSA9IGpzQ2FzdDxKU0FycmF5Kj4ob2JqZWN0KTsKIAotICAgIC8v
IDMuIElmIFAgaXMgImxlbmd0aCIsIHRoZW4KKyAgICAvLyAyLiBJZiBQIGlzICJsZW5ndGgiLCB0
aGVuCisgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNldGxlbmd0aAog
ICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAg
ICAgIC8vIEFsbCBwYXRocyB0aHJvdWdoIGxlbmd0aCBkZWZpbml0aW9uIGNhbGwgdGhlIGRlZmF1
bHQgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dLCBoZW5jZToKLSAgICAgICAgLy8gZnJvbSBFUzUuMSA4
LjEyLjkgNy5hLgorICAgICAgICAvLyBGSVhNRTogTm90aGluZyBwcmV2ZW50cyB0aGlzIGZyb20g
YmVpbmcgY2FsbGVkIG9uIGEgUnVudGltZUFycmF5LCBhbmQgdGhlIGxlbmd0aCBmdW5jdGlvbiB3
aWxsIGFsd2F5cyByZXR1cm4gMCBpbiB0aGF0IGNhc2UuCisgICAgICAgIHVuc2lnbmVkIG5ld0xl
bmd0aCA9IGFycmF5LT5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUoKSkg
eworICAgICAgICAgICAgbmV3TGVuZ3RoID0gZGVzY3JpcHRvci52YWx1ZSgpLnRvVUludDMyKGds
b2JhbE9iamVjdCk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxz
ZSk7CisgICAgICAgICAgICBkb3VibGUgdmFsdWVBc051bWJlciA9IGRlc2NyaXB0b3IudmFsdWUo
KS50b051bWJlcihnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZmFsc2UpOworICAgICAgICAgICAgaWYgKHZhbHVlQXNOdW1iZXIgIT0gc3RhdGlj
X2Nhc3Q8ZG91YmxlPihuZXdMZW5ndGgpKSB7CisgICAgICAgICAgICAgICAgdGhyb3dSYW5nZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbnZhbGlkIGFycmF5IGxlbmd0aCJfcyk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgLy8gT3JkaW5hcnlEZWZpbmVPd25Qcm9wZXJ0eSAoaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy12YWxpZGF0ZWFuZGFwcGx5cHJvcGVydHlkZXNjcmlwdG9yKSBhdCBzdGVwcyAxLmEs
IDExLmEsIGFuZCAxNSBpcyBub3cgcGVyZm9ybWVkOgorICAgICAgICAvLyA0LiBJZiBjdXJyZW50
LltbQ29uZmlndXJhYmxlXV0gaXMgZmFsc2UsIHRoZW4KKyAgICAgICAgLy8gNC5hLiBJZiBEZXNj
LltbQ29uZmlndXJhYmxlXV0gaXMgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIHRydWUsIHJldHVy
biBmYWxzZS4KICAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYm
IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBVbmNvbmZpZ3VyYWJsZVByb3Bl
cnR5Q2hhbmdlQ29uZmlndXJhYmlsaXR5RXJyb3IpOwotICAgICAgICAvLyBmcm9tIEVTNS4xIDgu
MTIuOSA3LmIuCisgICAgICAgIC8vIDQuYi4gSWYgRGVzYy5bW0VudW1lcmFibGVdXSBpcyBwcmVz
ZW50IGFuZCBTYW1lVmFsdWUoRGVzYy5bW0VudW1lcmFibGVdXSwgY3VycmVudC5bW0VudW1lcmFi
bGVdXSkgaXMgZmFsc2UsIHJldHVybiBmYWxzZS4KICAgICAgICAgaWYgKGRlc2NyaXB0b3IuZW51
bWVyYWJsZVByZXNlbnQoKSAmJiBkZXNjcmlwdG9yLmVudW1lcmFibGUoKSkKICAgICAgICAgICAg
IHJldHVybiB0eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdGhyb3dFeGNlcHRpb24sIFVu
Y29uZmlndXJhYmxlUHJvcGVydHlDaGFuZ2VFbnVtZXJhYmlsaXR5RXJyb3IpOwotCi0gICAgICAg
IC8vIGEuIElmIHRoZSBbW1ZhbHVlXV0gZmllbGQgb2YgRGVzYyBpcyBhYnNlbnQsIHRoZW4KLSAg
ICAgICAgLy8gYS5pLiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBkZWZhdWx0IFtb
RGVmaW5lT3duUHJvcGVydHldXSBpbnRlcm5hbCBtZXRob2QgKDguMTIuOSkgb24gQSBwYXNzaW5n
ICJsZW5ndGgiLCBEZXNjLCBhbmQgVGhyb3cgYXMgYXJndW1lbnRzLgorICAgICAgICAvLyA2LiBF
bHNlIGlmIFNhbWVWYWx1ZShJc0RhdGFEZXNjcmlwdG9yKGN1cnJlbnQpLCBJc0RhdGFEZXNjcmlw
dG9yKERlc2MpKSBpcyBmYWxzZSwgdGhlbgorICAgICAgICAvLyA2LmEuIElmIGN1cnJlbnQuW1tD
b25maWd1cmFibGVdXSBpcyBmYWxzZSwgcmV0dXJuIGZhbHNlLgogICAgICAgICBpZiAoZGVzY3Jp
cHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9w
ZXJ0eUNoYW5nZUFjY2Vzc01lY2hhbmlzbUVycm9yKTsKLSAgICAgICAgLy8gZnJvbSBFUzUuMSA4
LjEyLjkgMTAuYS4KLSAgICAgICAgaWYgKCFhcnJheS0+aXNMZW5ndGhXcml0YWJsZSgpICYmIGRl
c2NyaXB0b3Iud3JpdGFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci53cml0YWJsZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2Vw
dGlvbiwgVW5jb25maWd1cmFibGVQcm9wZXJ0eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOwotICAg
ICAgICAvLyBUaGlzIGRlc2NyaXB0b3IgaXMgZWl0aGVyIGp1c3QgbWFraW5nIGxlbmd0aCByZWFk
LW9ubHksIG9yIGNoYW5naW5nIG5vdGhpbmchCi0gICAgICAgIGlmICghZGVzY3JpcHRvci52YWx1
ZSgpKSB7Ci0gICAgICAgICAgICBpZiAoZGVzY3JpcHRvci53cml0YWJsZVByZXNlbnQoKSkKLSAg
ICAgICAgICAgICAgICBhcnJheS0+c2V0TGVuZ3RoV3JpdGFibGUoZ2xvYmFsT2JqZWN0LCBkZXNj
cmlwdG9yLndyaXRhYmxlKCkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIC8vIGIuIExldCBuZXdMZW5EZXNjIGJlIGEgY29weSBvZiBEZXNj
LgotICAgICAgICAvLyBjLiBMZXQgbmV3TGVuIGJlIFRvVWludDMyKERlc2MuW1tWYWx1ZV1dKS4K
LSAgICAgICAgdW5zaWduZWQgbmV3TGVuID0gZGVzY3JpcHRvci52YWx1ZSgpLnRvVUludDMyKGds
b2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsK
LSAgICAgICAgLy8gZC4gSWYgbmV3TGVuIGlzIG5vdCBlcXVhbCB0byBUb051bWJlciggRGVzYy5b
W1ZhbHVlXV0pLCB0aHJvdyBhIFJhbmdlRXJyb3IgZXhjZXB0aW9uLgotICAgICAgICBkb3VibGUg
dmFsdWVBc051bWJlciA9IGRlc2NyaXB0b3IudmFsdWUoKS50b051bWJlcihnbG9iYWxPYmplY3Qp
OwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7Ci0gICAgICAgIGlm
IChuZXdMZW4gIT0gdmFsdWVBc051bWJlcikgewotICAgICAgICAgICAgSlNDOjp0aHJvd0V4Y2Vw
dGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwg
IkludmFsaWQgYXJyYXkgbGVuZ3RoIl9zKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBCYXNlZCBvbiBTYW1lVmFsdWUgY2hlY2sgaW4gOC4xMi45
LCB0aGlzIGlzIGFsd2F5cyBva2F5LgotICAgICAgICAvLyBGSVhNRTogTm90aGluZyBwcmV2ZW50
cyB0aGlzIGZyb20gYmVpbmcgY2FsbGVkIG9uIGEgUnVudGltZUFycmF5LCBhbmQgdGhlIGxlbmd0
aCBmdW5jdGlvbiB3aWxsIGFsd2F5cyByZXR1cm4gMCBpbiB0aGF0IGNhc2UuCi0gICAgICAgIGlm
IChuZXdMZW4gPT0gYXJyYXktPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBpZiAoZGVzY3JpcHRv
ci53cml0YWJsZVByZXNlbnQoKSkKLSAgICAgICAgICAgICAgICBhcnJheS0+c2V0TGVuZ3RoV3Jp
dGFibGUoZ2xvYmFsT2JqZWN0LCBkZXNjcmlwdG9yLndyaXRhYmxlKCkpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIC8vIDcuIEVsc2UgaWYgSXNEYXRhRGVzY3JpcHRvcihjdXJy
ZW50KSBhbmQgSXNEYXRhRGVzY3JpcHRvcihEZXNjKSBhcmUgYm90aCB0cnVlLCB0aGVuCisgICAg
ICAgIC8vIDcuYS4gSWYgY3VycmVudC5bW0NvbmZpZ3VyYWJsZV1dIGlzIGZhbHNlIGFuZCBjdXJy
ZW50LltbV3JpdGFibGVdXSBpcyBmYWxzZSwgdGhlbgorICAgICAgICBpZiAoIWFycmF5LT5pc0xl
bmd0aFdyaXRhYmxlKCkpIHsKKyAgICAgICAgICAgIC8vIDcuYS5pLiBJZiBEZXNjLltbV3JpdGFi
bGVdXSBpcyBwcmVzZW50IGFuZCBEZXNjLltbV3JpdGFibGVdXSBpcyB0cnVlLCByZXR1cm4gZmFs
c2UuCisgICAgICAgICAgICAvLyBUaGlzIGNoZWNrIGlzIHVuYWZmZWN0ZWQgYnkgc3RlcHMgMTMt
MTQgb2YgQXJyYXlTZXRMZW5ndGggYXMgdGhleSBjaGFuZ2Ugbm9uLXdyaXRhYmxlIGRlc2NyaXB0
b3JzIG9ubHkuCisgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci53cml0YWJsZVByZXNlbnQoKSAm
JiBkZXNjcmlwdG9yLndyaXRhYmxlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCB0aHJvd0V4Y2VwdGlvbiwgVW5jb25maWd1cmFibGVQcm9w
ZXJ0eUNoYW5nZVdyaXRhYmlsaXR5RXJyb3IpOworICAgICAgICAgICAgLy8gNy5hLmlpLiBJZiBE
ZXNjLltbVmFsdWVdXSBpcyBwcmVzZW50IGFuZCBTYW1lVmFsdWUoRGVzYy5bW1ZhbHVlXV0sIGN1
cnJlbnQuW1tWYWx1ZV1dKSBpcyBmYWxzZSwgcmV0dXJuIGZhbHNlLgorICAgICAgICAgICAgLy8g
VGhpcyBjaGVjayBhbHNvIGNvdmVycyBzdGVwIDEyIG9mIEFycmF5U2V0TGVuZ3RoLCB3aGljaCBp
cyBvbmx5IHJlYWNoYWJsZSBpZiBuZXdMZW4gPCBvbGRMZW4uCisgICAgICAgICAgICBpZiAobmV3
TGVuZ3RoICE9IGFycmF5LT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBSZWFkb25seVByb3BlcnR5
Q2hhbmdlRXJyb3IpOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gZS4gU2V0IG5ld0xlbkRlc2Mu
W1tWYWx1ZV0gdG8gbmV3TGVuLgotICAgICAgICAvLyBmLiBJZiBuZXdMZW4gPj0gb2xkTGVuLCB0
aGVuCi0gICAgICAgIC8vIGYuaS4gUmV0dXJuIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgZGVm
YXVsdCBbW0RlZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kICg4LjEyLjkpIG9uIEEg
cGFzc2luZyAibGVuZ3RoIiwgbmV3TGVuRGVzYywgYW5kIFRocm93IGFzIGFyZ3VtZW50cy4KLSAg
ICAgICAgLy8gZy4gUmVqZWN0IGlmIG9sZExlbkRlc2MuW1tXcml0YWJsZV1dIGlzIGZhbHNlLgot
ICAgICAgICBpZiAoIWFycmF5LT5pc0xlbmd0aFdyaXRhYmxlKCkpCi0gICAgICAgICAgICByZXR1
cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHRocm93RXhjZXB0aW9uLCBSZWFkb25s
eVByb3BlcnR5Q2hhbmdlRXJyb3IpOwotICAgICAgICAKLSAgICAgICAgLy8gaC4gSWYgbmV3TGVu
RGVzYy5bW1dyaXRhYmxlXV0gaXMgYWJzZW50IG9yIGhhcyB0aGUgdmFsdWUgdHJ1ZSwgbGV0IG5l
d1dyaXRhYmxlIGJlIHRydWUuCi0gICAgICAgIC8vIGkuIEVsc2UsCi0gICAgICAgIC8vIGkuaS4g
TmVlZCB0byBkZWZlciBzZXR0aW5nIHRoZSBbW1dyaXRhYmxlXV0gYXR0cmlidXRlIHRvIGZhbHNl
IGluIGNhc2UgYW55IGVsZW1lbnRzIGNhbm5vdCBiZSBkZWxldGVkLgotICAgICAgICAvLyBpLmlp
LiBMZXQgbmV3V3JpdGFibGUgYmUgZmFsc2UuCi0gICAgICAgIC8vIGkuaWlpLiBTZXQgbmV3TGVu
RGVzYy5bW1dyaXRhYmxlXSB0byB0cnVlLgotICAgICAgICAvLyBqLiBMZXQgc3VjY2VlZGVkIGJl
IHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgZGVmYXVsdCBbW0RlZmluZU93blByb3BlcnR5XV0g
aW50ZXJuYWwgbWV0aG9kICg4LjEyLjkpIG9uIEEgcGFzc2luZyAibGVuZ3RoIiwgbmV3TGVuRGVz
YywgYW5kIFRocm93IGFzIGFyZ3VtZW50cy4KLSAgICAgICAgLy8gay4gSWYgc3VjY2VlZGVkIGlz
IGZhbHNlLCByZXR1cm4gZmFsc2UuCi0gICAgICAgIC8vIGwuIFdoaWxlIG5ld0xlbiA8IG9sZExl
biByZXBlYXQsCi0gICAgICAgIC8vIGwuaS4gU2V0IG9sZExlbiB0byBvbGRMZW4g4oCTIDEuCi0g
ICAgICAgIC8vIGwuaWkuIExldCBkZWxldGVTdWNjZWVkZWQgYmUgdGhlIHJlc3VsdCBvZiBjYWxs
aW5nIHRoZSBbW0RlbGV0ZV1dIGludGVybmFsIG1ldGhvZCBvZiBBIHBhc3NpbmcgVG9TdHJpbmco
b2xkTGVuKSBhbmQgZmFsc2UgYXMgYXJndW1lbnRzLgotICAgICAgICAvLyBsLmlpaS4gSWYgZGVs
ZXRlU3VjY2VlZGVkIGlzIGZhbHNlLCB0aGVuCi0gICAgICAgIGJvb2wgc3VjY2VzcyA9IGFycmF5
LT5zZXRMZW5ndGgoZ2xvYmFsT2JqZWN0LCBuZXdMZW4sIHRocm93RXhjZXB0aW9uKTsKKyAgICAg
ICAgLy8gc2V0TGVuZ3RoKCkgY2xlYXJzIGluZGljZXMgPj0gbmV3TGVuZ3RoIGFuZCBzZXRzIGNv
cnJlY3QgImxlbmd0aCIgdmFsdWUgaWYgW1tEZWxldGVdXSBmYWlscyAoc3RlcCAxNy5iLmkpCisg
ICAgICAgIGJvb2wgc3VjY2VzcyA9IGFycmF5LT5zZXRMZW5ndGgoZ2xvYmFsT2JqZWN0LCBuZXdM
ZW5ndGgsIHRocm93RXhjZXB0aW9uKTsKICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUu
ZXhjZXB0aW9uKCkgfHwgIXN1Y2Nlc3MpOwotICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAg
ICAgICAgIC8vIDEuIFNldCBuZXdMZW5EZXNjLltbVmFsdWVdIHRvIG9sZExlbisxLgotICAgICAg
ICAgICAgLy8gMi4gSWYgbmV3V3JpdGFibGUgaXMgZmFsc2UsIHNldCBuZXdMZW5EZXNjLltbV3Jp
dGFibGVdIHRvIGZhbHNlLgotICAgICAgICAgICAgLy8gMy4gQ2FsbCB0aGUgZGVmYXVsdCBbW0Rl
ZmluZU93blByb3BlcnR5XV0gaW50ZXJuYWwgbWV0aG9kICg4LjEyLjkpIG9uIEEgcGFzc2luZyAi
bGVuZ3RoIiwgbmV3TGVuRGVzYywgYW5kIGZhbHNlIGFzIGFyZ3VtZW50cy4KLSAgICAgICAgICAg
IC8vIDQuIFJlamVjdC4KLSAgICAgICAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxlUHJlc2Vu
dCgpKQotICAgICAgICAgICAgICAgIGFycmF5LT5zZXRMZW5ndGhXcml0YWJsZShnbG9iYWxPYmpl
Y3QsIGRlc2NyaXB0b3Iud3JpdGFibGUoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBtLiBJZiBuZXdXcml0YWJsZSBpcyBmYWxzZSwgdGhlbgot
ICAgICAgICAvLyBpLiBDYWxsIHRoZSBkZWZhdWx0IFtbRGVmaW5lT3duUHJvcGVydHldXSBpbnRl
cm5hbCBtZXRob2QgKDguMTIuOSkgb24gQSBwYXNzaW5nICJsZW5ndGgiLAotICAgICAgICAvLyAg
ICBQcm9wZXJ0eSBEZXNjcmlwdG9ye1tbV3JpdGFibGVdXTogZmFsc2V9LCBhbmQgZmFsc2UgYXMg
YXJndW1lbnRzLiBUaGlzIGNhbGwgd2lsbCBhbHdheXMKLSAgICAgICAgLy8gICAgcmV0dXJuIHRy
dWUuCiAgICAgICAgIGlmIChkZXNjcmlwdG9yLndyaXRhYmxlUHJlc2VudCgpKQogICAgICAgICAg
ICAgYXJyYXktPnNldExlbmd0aFdyaXRhYmxlKGdsb2JhbE9iamVjdCwgZGVzY3JpcHRvci53cml0
YWJsZSgpKTsKLSAgICAgICAgLy8gbi4gUmV0dXJuIHRydWUuCi0gICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICByZXR1cm4gc3VjY2VzczsKICAgICB9CiAKICAgICAvLyA0LiBFbHNlIGlmIFAg
aXMgYW4gYXJyYXkgaW5kZXggKDE1LjQpLCB0aGVuCkBAIC0yNjYsNyArMjMxLDcgQEAgYm9vbCBK
U0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplYwogICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAotLy8gRUNNQSAxNS40LjUuMQorLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1hcnJheS1leG90aWMtb2JqZWN0cy1kZWZpbmVvd25wcm9wZXJ0eS1wLWRlc2MKIGJv
b2wgSlNBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTQ1NSw2
ICs0MjAsOCBAQCBib29sIEpTQXJyYXk6OnNldExlbmd0aFdpdGhBcnJheVN0b3JhZ2UoCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgdW5zaWduZWQgbGVu
Z3RoID0gc3RvcmFnZS0+bGVuZ3RoKCk7CisgICAgaWYgKG5ld0xlbmd0aCA9PSBsZW5ndGgpCisg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIC8vIElmIHRoZSBsZW5ndGggaXMgcmVhZCBv
bmx5IHRoZW4gd2UgZW50ZXIgc3BhcnNlIG1vZGUsIHNvIHNob3VsZCBlbnRlciB0aGUgZm9sbG93
aW5nICdpZicuCiAgICAgQVNTRVJUKGlzTGVuZ3RoV3JpdGFibGUoKSB8fCBzdG9yYWdlLT5tX3Nw
YXJzZU1hcCk7Cg==
</data>
<flag name="review"
          id="424128"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>