<?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>167220</bug_id>
          
          <creation_ts>2017-01-19 16:50:08 -0800</creation_ts>
          <short_desc>Structure::pin() needs to be called while holding a lock</short_desc>
          <delta_ts>2017-01-19 18:40:20 -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>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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ap</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268245</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-19 16:50:08 -0800</bug_when>
    <thetext>Otherwise the GC could blow away the table as we are pinning it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268250</commentid>
    <comment_count>1</comment_count>
      <attachid>299285</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-19 16:56:15 -0800</bug_when>
    <thetext>Created attachment 299285
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268256</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-19 17:00:23 -0800</bug_when>
    <thetext>This fixes crashes with this signature:

Termination Signal:    Trace/BPT trap: 5
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x000000010d3b3df5 0x10c970000 + 10763765
1   com.apple.JavaScriptCore      	0x000000010d3b49cb bool JSC::Structure::checkOffsetConsistency&lt;JSC::Structure::materializePropertyTable(JSC::VM&amp;, bool)::$_0&gt;(JSC::PropertyTable*, JSC::Structure::materializePropertyTable(JSC::VM&amp;, bool)::$_0 const&amp;) const::&apos;lambda&apos;(char const*)::operator()(char const*) const + 1179
2   com.apple.JavaScriptCore      	0x000000010d3afa2c JSC::Structure::materializePropertyTable(JSC::VM&amp;, bool) + 1228 (StructureInlines.h:276)
3   com.apple.JavaScriptCore      	0x000000010c97861a int JSC::Structure::add&lt;JSC::JSObject::prepareToPutDirectWithoutTransition(JSC::VM&amp;, JSC::PropertyName, unsigned int, unsigned int, JSC::Structure*)::&apos;lambda&apos;(JSC::GCSafeConcurrentJSLocker const&amp;, int, int)&gt;(JSC::VM&amp;, JSC::PropertyName, unsigned int, JSC::JSObject::prepareToPutDirectWithoutTransition(JSC::VM&amp;, JSC::PropertyName, unsigned int, unsigned int, JSC::Structure*)::&apos;lambda&apos;(JSC::GCSafeConcurrentJSLocker const&amp;, int, int) const&amp;) + 58 (Structure.h:688)
4   com.apple.JavaScriptCore      	0x000000010cb33d07 JSC::JSObject::putDirectWithoutTransition(JSC::VM&amp;, JSC::PropertyName, JSC::JSValue, unsigned int) + 231 (PropertyOffset.h:108)
5   com.apple.JavaScriptCore      	0x000000010d1133bf JSC::JSGlobalObject::init(JSC::VM&amp;) + 15599 (WriteBarrier.h:108)
6   com.apple.JavaScriptCore      	0x000000010d11a285 JSC::JSGlobalObject::finishCreation(JSC::VM&amp;, JSC::JSObject*) + 149 (WriteBarrierInlines.h:53)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268261</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-19 17:05:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/30108809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268299</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-19 18:40:20 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/210947</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299285</attachid>
            <date>2017-01-19 16:56:15 -0800</date>
            <delta_ts>2017-01-19 17:03:24 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13000</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEwOTI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE3LTAxLTE5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3RydWN0dXJlOjpwaW4oKSBuZWVkcyB0byBiZSBjYWxsZWQgd2hpbGUgaG9sZGluZyBhIGxvY2sK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltYWdpbmUg
dGhpcyByYWNlOiB0aGUgbXV0YXRvciBjYWxscyBwaW4oKSBhbmQgdGhlIGNvbGxlY3RvciBjYWxs
cyB2aXNpdENoaWxkcmVuKCksCisgICAgICAgIG9uIHRoZSBzYW1lIFN0cnVjdHVyZSBhdCB0aGUg
c2FtZSB0aW1lLiBJbiB0cnVuayBwaW4oKSBkb2VzIG5vdCByZXF1aXJlIGEgbG9jayB0byBiZQor
ICAgICAgICBoZWxkIGFuZCBpdCBkb2Vzbid0IGdyYWIgYW55IGxvY2tzLiBNZWFud2hpbGUgdmlz
aXRDaGlsZHJlbigpIGdyYWJzIHRoZSBsb2NrLCBjaGVja3MKKyAgICAgICAgaWYgdGhlIHN0cnVj
dHVyZSBpcyBwaW5uZWQsIGFuZCBpZiBub3QsIGl0IHJlbW92ZXMgaXQgYnkgb3ZlcndyaXRpbmcg
d2l0aCB6ZXJvLiBOb3cKKyAgICAgICAgaW1hZ2luZSBob3cgdGhpcyBwbGF5cyBvdXQgd2hlbiBw
aW4oKSBydW5zLiBTaW5jZSBwaW4oKSBncmFicyBubyBsb2NrcywgaXQgaXMKKyAgICAgICAgaXJy
ZWxldmFudCB0aGF0IHZpc2l0Q2hpbGRyZW4oKSBncmFicyBhbnkgbG9ja3MuIFNvLCB2aXNpdENo
aWxkcmVuKCkgbWlnaHQgY2hlY2sgaWYKKyAgICAgICAgdGhlIHRhYmxlIGlzIHBpbm5lZCBiZWZv
cmUgcGluKCkgcGlucyBpdCwgYW5kIHRoZW4gY2xlYXIgdGhlIHRhYmxlIGFmdGVyIGl0IHdhcwor
ICAgICAgICBhbHJlYWR5IHBpbm5lZC4KKworICAgICAgICBUaGUgcHJvYmxlbSBoZXJlIGlzIHRo
YXQgcGluKCkgc2hvdWxkIGJlIGhvbGRpbmcgYSBsb2NrLiBXZSBjb3VsZCBlaXRoZXIgbWFrZSBw
aW4oKQorICAgICAgICBncmFiIHRoYXQgbG9jayBieSBpdHNlbGYsIG9yIHdoYXQgdGhpcyBwYXRj
aCBkb2VzIGlzIG1ha2VzIHRoZSBjYWxsZXIgZ3JhYiB0aGUgbG9jay4KKyAgICAgICAgVGhpcyBp
cyBncmVhdCBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgc29tZXRpbWVzIHdlIGRvbid0IGhhdmUgdG8g
aW50cm9kdWNlIGFueSBuZXcKKyAgICAgICAgbG9ja2luZy4KKworICAgICAgICBUaGlzIGZpeGVz
IGEgbWF0ZXJpYWxpemVQcm9wZXJ0eVRhYmxlKCkgY2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpIGNy
YXNoIHRoYXQgaGFwcGVucworICAgICAgICB2ZXJ5IHJhcmVseSwgYnV0IEkgd2FzIGFibGUgdG8g
Z2V0IGl0IHRvIHJlcHJvZHVjZSB3aXRoIHJ1bi13ZWJraXQtdGVzdHMgYW5kCisgICAgICAgIGFn
Z3Jlc3NpdmUgR0Mgc2V0dGluZ3MuCisKKyAgICAgICAgKiBydW50aW1lL0NvbmN1cnJlbnRKU0xv
Y2suaDoKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eVRhYmxlKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjpjaGFuZ2VQcm90b3R5cGVUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
OjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjp0
b0RpY3Rpb25hcnlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpub25Qcm9w
ZXJ0eVRyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnBpbik6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6cGluRm9yQ2FjaGluZyk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6YWRkKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNoZWNrT2Zm
c2V0Q29uc2lzdGVuY3kpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmFkZCk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZTo6YWRkUHJvcGVydHlXaXRob3V0VHJhbnNpdGlvbik6CisKIDIwMTct
MDEtMTkgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAg
ICAgInRoaXMiIG1pc3NpbmcgYWZ0ZXIgYXdhaXQgaW4gYXN5bmMgYXJyb3cgZnVuY3Rpb24KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbmN1cnJlbnRKU0xvY2suaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SlNMb2Nr
LmgJKHJldmlzaW9uIDIxMDkyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bmN1cnJlbnRKU0xvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCB0eXBlZGVm
IE5vTG9jayBDb25jdXJyZW50SlNMb2NrOwogdHlwZWRlZiBOb0xvY2tMb2NrZXIgQ29uY3VycmVu
dEpTTG9ja2VySW1wbDsKICNlbmRpZgogCi1jbGFzcyBDb25jdXJyZW50SlNMb2NrZXJCYXNlIHsK
K2NsYXNzIENvbmN1cnJlbnRKU0xvY2tlckJhc2UgOiBwdWJsaWMgQWJzdHJhY3RMb2NrZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbmN1cnJlbnRKU0xvY2tlckJhc2UpOwogcHVibGlj
OgogICAgIGV4cGxpY2l0IENvbmN1cnJlbnRKU0xvY2tlckJhc2UoQ29uY3VycmVudEpTTG9jayYg
bG9ja2FibGUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAJKHJldmlzaW9uIDIxMDkyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Nyw3ICszNTcsMTcgQEAgUHJvcGVy
dHlUYWJsZSogU3RydWN0dXJlOjptYXRlcmlhbGl6ZVBybwogICAgICAgICB0YWJsZS0+YWRkKGVu
dHJ5LCBtX29mZnNldCwgUHJvcGVydHlUYWJsZTo6UHJvcGVydHlPZmZzZXRNdXN0Tm90Q2hhbmdl
KTsKICAgICB9CiAgICAgCi0gICAgY2hlY2tPZmZzZXRDb25zaXN0ZW5jeSgpOworICAgIGNoZWNr
T2Zmc2V0Q29uc2lzdGVuY3koCisgICAgICAgIHRhYmxlLAorICAgICAgICBbJl0gKCkgeworICAg
ICAgICAgICAgZGF0YUxvZygiRGV0ZWN0ZWQgaW4gbWF0ZXJpYWxpemVQcm9wZXJ0eVRhYmxlLlxu
Iik7CisgICAgICAgICAgICBkYXRhTG9nKCJGb3VuZCBzdHJ1Y3R1cmUgPSAiLCBSYXdQb2ludGVy
KHN0cnVjdHVyZSksICJcbiIpOworICAgICAgICAgICAgZGF0YUxvZygic3RydWN0dXJlcyA9ICIp
OworICAgICAgICAgICAgQ29tbWFQcmludGVyIGNvbW1hOworICAgICAgICAgICAgZm9yIChTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA6IHN0cnVjdHVyZXMpCisgICAgICAgICAgICAgICAgZGF0YUxvZyhj
b21tYSwgUmF3UG9pbnRlcihzdHJ1Y3R1cmUpKTsKKyAgICAgICAgICAgIGRhdGFMb2coIlxuIik7
CisgICAgICAgIH0pOwogICAgIAogICAgIHJldHVybiB0YWJsZTsKIH0KQEAgLTU0Niw4ICs1NTYs
OSBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6Y2hhbmdlUHJvdG90eXBlVHJhCiAgICAgU3RydWN0
dXJlKiB0cmFuc2l0aW9uID0gY3JlYXRlKHZtLCBzdHJ1Y3R1cmUpOwogCiAgICAgdHJhbnNpdGlv
bi0+bV9wcm90b3R5cGUuc2V0KHZtLCB0cmFuc2l0aW9uLCBwcm90b3R5cGUpOwotICAgIAotICAg
IHRyYW5zaXRpb24tPnBpbih2bSwgc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJsZUZvclBpbm5p
bmcodm0pKTsKKworICAgIFByb3BlcnR5VGFibGUqIHRhYmxlID0gc3RydWN0dXJlLT5jb3B5UHJv
cGVydHlUYWJsZUZvclBpbm5pbmcodm0pOworICAgIHRyYW5zaXRpb24tPnBpbihob2xkTG9jayh0
cmFuc2l0aW9uLT5tX2xvY2spLCB2bSwgdGFibGUpOwogICAgIHRyYW5zaXRpb24tPm1fb2Zmc2V0
ID0gc3RydWN0dXJlLT5tX29mZnNldDsKICAgICAKICAgICB0cmFuc2l0aW9uLT5jaGVja09mZnNl
dENvbnNpc3RlbmN5KCk7CkBAIC01NTgsOCArNTY5LDkgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6
OmF0dHJpYnV0ZUNoYW5nZVRyYQogewogICAgIGlmICghc3RydWN0dXJlLT5pc1VuY2FjaGVhYmxl
RGljdGlvbmFyeSgpKSB7CiAgICAgICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IGNyZWF0ZSh2
bSwgc3RydWN0dXJlKTsKLSAgICAgICAgCi0gICAgICAgIHRyYW5zaXRpb24tPnBpbih2bSwgc3Ry
dWN0dXJlLT5jb3B5UHJvcGVydHlUYWJsZUZvclBpbm5pbmcodm0pKTsKKworICAgICAgICBQcm9w
ZXJ0eVRhYmxlKiB0YWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGVGb3JQaW5uaW5n
KHZtKTsKKyAgICAgICAgdHJhbnNpdGlvbi0+cGluKGhvbGRMb2NrKHRyYW5zaXRpb24tPm1fbG9j
ayksIHZtLCB0YWJsZSk7CiAgICAgICAgIHRyYW5zaXRpb24tPm1fb2Zmc2V0ID0gc3RydWN0dXJl
LT5tX29mZnNldDsKICAgICAgICAgCiAgICAgICAgIHN0cnVjdHVyZSA9IHRyYW5zaXRpb247CkBA
IC01ODAsNyArNTkyLDggQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnRvRGljdGlvbmFyeVRyYW5z
aQogICAgIAogICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IGNyZWF0ZSh2bSwgc3RydWN0dXJl
LCBkZWZlcnJlZCk7CiAKLSAgICB0cmFuc2l0aW9uLT5waW4odm0sIHN0cnVjdHVyZS0+Y29weVBy
b3BlcnR5VGFibGVGb3JQaW5uaW5nKHZtKSk7CisgICAgUHJvcGVydHlUYWJsZSogdGFibGUgPSBz
dHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmluZyh2bSk7CisgICAgdHJhbnNpdGlv
bi0+cGluKGhvbGRMb2NrKHRyYW5zaXRpb24tPm1fbG9jayksIHZtLCB0YWJsZSk7CiAgICAgdHJh
bnNpdGlvbi0+bV9vZmZzZXQgPSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwogICAgIHRyYW5zaXRpb24t
PnNldERpY3Rpb25hcnlLaW5kKGtpbmQpOwogICAgIHRyYW5zaXRpb24tPnNldEhhc0JlZW5EaWN0
aW9uYXJ5KHRydWUpOwpAQCAtNjY3LDExICs2ODAsMTIgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6
Om5vblByb3BlcnR5VHJhbnNpdAogICAgICAgICAvLyBXZSBwaW4gdGhlIHByb3BlcnR5IHRhYmxl
IG9uIHRyYW5zaXRpb25zIHRoYXQgZG8gd2hvbGVzYWxlIGVkaXRpbmcgb2YgdGhlIHByb3BlcnR5
CiAgICAgICAgIC8vIHRhYmxlLCBzaW5jZSBvdXIgbG9naWMgZm9yIHdhbGtpbmcgdGhlIHByb3Bl
cnR5IHRyYW5zaXRpb24gY2hhaW4gdG8gcmVtYXRlcmlhbGl6ZSB0aGUKICAgICAgICAgLy8gdGFi
bGUgZG9lc24ndCBrbm93IGhvdyB0byB0YWtlIGludG8gYWNjb3VudCBzdWNoIHdob2xlc2FsZSBl
ZGl0cy4KLSAgICAgICAgCi0gICAgICAgIHRyYW5zaXRpb24tPnBpbkZvckNhY2hpbmcodm0sIHN0
cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKHZtKSk7CisKKyAgICAgICAgUHJv
cGVydHlUYWJsZSogdGFibGUgPSBzdHJ1Y3R1cmUtPmNvcHlQcm9wZXJ0eVRhYmxlRm9yUGlubmlu
Zyh2bSk7CisgICAgICAgIHRyYW5zaXRpb24tPnBpbkZvckNhY2hpbmcoaG9sZExvY2sodHJhbnNp
dGlvbi0+bV9sb2NrKSwgdm0sIHRhYmxlKTsKICAgICAgICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQg
PSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwogICAgICAgICAKLSAgICAgICAgUHJvcGVydHlUYWJsZSog
dGFibGUgPSB0cmFuc2l0aW9uLT5wcm9wZXJ0eVRhYmxlT3JOdWxsKCk7CisgICAgICAgIHRhYmxl
ID0gdHJhbnNpdGlvbi0+cHJvcGVydHlUYWJsZU9yTnVsbCgpOwogICAgICAgICBSRUxFQVNFX0FT
U0VSVCh0YWJsZSk7CiAgICAgICAgIGZvciAoYXV0byYgZW50cnkgOiAqdGFibGUpIHsKICAgICAg
ICAgICAgIGlmIChzZXRzRG9udERlbGV0ZU9uQWxsUHJvcGVydGllcyh0cmFuc2l0aW9uS2luZCkp
CkBAIC02ODksMTAgKzcwMywxMSBAQCBTdHJ1Y3R1cmUqIFN0cnVjdHVyZTo6bm9uUHJvcGVydHlU
cmFuc2l0CiAgICAgICAgICYmICF0cmFuc2l0aW9uLT5wcm9wZXJ0eVRhYmxlT3JOdWxsKCktPmlz
RW1wdHkoKSkKICAgICAgICAgdHJhbnNpdGlvbi0+c2V0SGFzUmVhZE9ubHlPckdldHRlclNldHRl
clByb3BlcnRpZXNFeGNsdWRpbmdQcm90byh0cnVlKTsKICAgICAKLSAgICBpZiAoc3RydWN0dXJl
LT5pc0RpY3Rpb25hcnkoKSkKLSAgICAgICAgdHJhbnNpdGlvbi0+cGluKHZtLCB0cmFuc2l0aW9u
LT5lbnN1cmVQcm9wZXJ0eVRhYmxlKHZtKSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIENvbmN1cnJl
bnRKU0xvY2tlciBsb2NrZXIoc3RydWN0dXJlLT5tX2xvY2spOworICAgIGlmIChzdHJ1Y3R1cmUt
PmlzRGljdGlvbmFyeSgpKSB7CisgICAgICAgIFByb3BlcnR5VGFibGUqIHRhYmxlID0gdHJhbnNp
dGlvbi0+ZW5zdXJlUHJvcGVydHlUYWJsZSh2bSk7CisgICAgICAgIHRyYW5zaXRpb24tPnBpbiho
b2xkTG9jayh0cmFuc2l0aW9uLT5tX2xvY2spLCB2bSwgdGFibGUpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soc3RydWN0dXJlLT5tX2xvY2spOwogICAgICAg
ICBzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblRhYmxlLmFkZCh2bSwgdHJhbnNpdGlvbik7CiAgICAg
fQogCkBAIC04MDQsNyArODE5LDcgQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0
aW9uYXJ5UwogICAgIHJldHVybiB0aGlzOwogfQogCi12b2lkIFN0cnVjdHVyZTo6cGluKFZNJiB2
bSwgUHJvcGVydHlUYWJsZSogdGFibGUpCit2b2lkIFN0cnVjdHVyZTo6cGluKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiwgVk0mIHZtLCBQcm9wZXJ0eVRhYmxlKiB0YWJsZSkKIHsKICAgICBzZXRJc1Bp
bm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7CiAgICAgc2V0UHJvcGVydHlUYWJsZSh2bSwgdGFibGUp
OwpAQCAtODEyLDcgKzgyNyw3IEBAIHZvaWQgU3RydWN0dXJlOjpwaW4oVk0mIHZtLCBQcm9wZXJ0
eVRhYmwKICAgICBtX25hbWVJblByZXZpb3VzID0gbnVsbHB0cjsKIH0KIAotdm9pZCBTdHJ1Y3R1
cmU6OnBpbkZvckNhY2hpbmcoVk0mIHZtLCBQcm9wZXJ0eVRhYmxlKiB0YWJsZSkKK3ZvaWQgU3Ry
dWN0dXJlOjpwaW5Gb3JDYWNoaW5nKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgVk0mIHZtLCBQcm9w
ZXJ0eVRhYmxlKiB0YWJsZSkKIHsKICAgICBzZXRJc1Bpbm5lZFByb3BlcnR5VGFibGUodHJ1ZSk7
CiAgICAgc2V0UHJvcGVydHlUYWJsZSh2bSwgdGFibGUpOwpAQCAtOTc4LDcgKzk5Myw3IEBAIFZl
Y3RvcjxQcm9wZXJ0eU1hcEVudHJ5PiBTdHJ1Y3R1cmU6OmdldFAKIAogUHJvcGVydHlPZmZzZXQg
U3RydWN0dXJlOjphZGQoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKQogewotICAgIHJldHVybiBhZGQoCisgICAgcmV0dXJuIGFkZDxTaG91bGRQ
aW46Ok5vPigKICAgICAgICAgdm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywKICAgICAgICAg
W3RoaXNdIChjb25zdCBHQ1NhZmVDb25jdXJyZW50SlNMb2NrZXImLCBQcm9wZXJ0eU9mZnNldCwg
UHJvcGVydHlPZmZzZXQgbmV3TGFzdE9mZnNldCkgewogICAgICAgICAgICAgc2V0TGFzdE9mZnNl
dChuZXdMYXN0T2Zmc2V0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5oCShyZXZpc2lvbiAyMTA5MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDggKzY2MCw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBmaW5kU3RydWN0dXJlc0FuZE1hcEZvck1hdGVyaWFsaXphdGlvbihWZWN0
b3I8U3RydWN0dXJlKiwgOD4mIHN0cnVjdHVyZXMsIFN0cnVjdHVyZSomLCBQcm9wZXJ0eVRhYmxl
KiYpOwogICAgIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIHRvRGljdGlvbmFyeVRyYW5zaXRpb24o
Vk0mLCBTdHJ1Y3R1cmUqLCBEaWN0aW9uYXJ5S2luZCwgRGVmZXJyZWRTdHJ1Y3R1cmVUcmFuc2l0
aW9uV2F0Y2hwb2ludEZpcmUqID0gbnVsbHB0cik7Ci0gICAgCi0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgRnVuYz4KKworICAgIGVudW0gY2xhc3MgU2hvdWxkUGluIHsgTm8sIFllcyB9OworICAgIHRl
bXBsYXRlPFNob3VsZFBpbiwgdHlwZW5hbWUgRnVuYz4KICAgICBQcm9wZXJ0eU9mZnNldCBhZGQo
Vk0mLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIGNvbnN0IEZ1bmMmKTsKICAg
ICBQcm9wZXJ0eU9mZnNldCBhZGQoVk0mLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CkBAIC03MjUsOSArNzI2LDEwIEBAIHBy
aXZhdGU6CiAKICAgICBib29sIGlzVmFsaWQoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVDaGFp
biogY2FjaGVkUHJvdG90eXBlQ2hhaW4pIGNvbnN0OwogICAgIGJvb2wgaXNWYWxpZChFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmVDaGFpbiogY2FjaGVkUHJvdG90eXBlQ2hhaW4pIGNvbnN0OwotICAgICAg
ICAKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHBpbihWTSYsIFByb3BlcnR5VGFibGUqKTsK
LSAgICB2b2lkIHBpbkZvckNhY2hpbmcoVk0mLCBQcm9wZXJ0eVRhYmxlKik7CisKKyAgICAvLyBZ
b3UgaGF2ZSB0byBob2xkIHRoZSBzdHJ1Y3R1cmUgbG9jayB0byBkbyB0aGVzZS4KKyAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHBpbihjb25zdCBBYnN0cmFjdExvY2tlciYsIFZNJiwgUHJvcGVy
dHlUYWJsZSopOworICAgIHZvaWQgcGluRm9yQ2FjaGluZyhjb25zdCBBYnN0cmFjdExvY2tlciYs
IFZNJiwgUHJvcGVydHlUYWJsZSopOwogICAgIAogICAgIGJvb2wgaXNSYXJlRGF0YShKU0NlbGwq
IGNlbGwpIGNvbnN0CiAgICAgewpAQCAtNzQwLDYgKzc0Miw4IEBAIHByaXZhdGU6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmVSYXJlRGF0YSo+KG1fcHJldmlvdXNPclJhcmVE
YXRhLmdldCgpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZXRhaWxzRnVuYz4K
KyAgICBib29sIGNoZWNrT2Zmc2V0Q29uc2lzdGVuY3koUHJvcGVydHlUYWJsZSosIGNvbnN0IERl
dGFpbHNGdW5jJikgY29uc3Q7CiAgICAgYm9vbCBjaGVja09mZnNldENvbnNpc3RlbmN5KCkgY29u
c3Q7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFsbG9jYXRlUmFyZURhdGEoVk0mKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJbmxp
bmVzLmgJKHJldmlzaW9uIDIxMDkyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDE1ICsyNDMsOSBAQCBp
bmxpbmUgV2F0Y2hwb2ludFNldCogU3RydWN0dXJlOjpwcm9wZXJ0CiAgICAgcmV0dXJuIG1hcC0+
Z2V0KG9mZnNldCk7CiB9CiAKLUFMV0FZU19JTkxJTkUgYm9vbCBTdHJ1Y3R1cmU6OmNoZWNrT2Zm
c2V0Q29uc2lzdGVuY3koKSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgRGV0YWlsc0Z1bmM+CitB
TFdBWVNfSU5MSU5FIGJvb2wgU3RydWN0dXJlOjpjaGVja09mZnNldENvbnNpc3RlbmN5KFByb3Bl
cnR5VGFibGUqIHByb3BlcnR5VGFibGUsIGNvbnN0IERldGFpbHNGdW5jJiBkZXRhaWxzRnVuYykg
Y29uc3QKIHsKLSAgICBQcm9wZXJ0eVRhYmxlKiBwcm9wZXJ0eVRhYmxlID0gcHJvcGVydHlUYWJs
ZU9yTnVsbCgpOwotCi0gICAgaWYgKCFwcm9wZXJ0eVRhYmxlKSB7Ci0gICAgICAgIEFTU0VSVCgh
aXNQaW5uZWRQcm9wZXJ0eVRhYmxlKCkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
ICAgICAvLyBXZSBjYW5ub3QgcmVsaWFibHkgYXNzZXJ0IHRoaW5ncyBhYm91dCB0aGUgcHJvcGVy
dHkgdGFibGUgaW4gdGhlIGNvbmN1cnJlbnQKICAgICAvLyBjb21waWxhdGlvbiB0aHJlYWQuIEl0
IGlzIHBvc3NpYmxlIGZvciB0aGUgdGFibGUgdG8gYmUgc3RvbGVuIGFuZCB0aGVuIGhhdmUKICAg
ICAvLyB0aGluZ3MgYWRkZWQgdG8gaXQsIHdoaWNoIGxlYWRzIHRvIHRoZSBvZmZzZXRzIGJlaW5n
IGFsbCBtZXNzZWQgdXAuIFdlIGNvdWxkCkBAIC0yNzIsNiArMjY2LDcgQEAgQUxXQVlTX0lOTElO
RSBib29sIFN0cnVjdHVyZTo6Y2hlY2tPZmZzZQogICAgICAgICBkYXRhTG9nKCJ0b3RhbFNpemUg
PSAiLCB0b3RhbFNpemUsICJcbiIpOwogICAgICAgICBkYXRhTG9nKCJpbmxpbmVPdmVyZmxvd0Fj
Y29yZGluZ1RvVG90YWxTaXplID0gIiwgaW5saW5lT3ZlcmZsb3dBY2NvcmRpbmdUb1RvdGFsU2l6
ZSwgIlxuIik7CiAgICAgICAgIGRhdGFMb2coIm51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JMYXN0
T2Zmc2V0ID0gIiwgbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQp
LCAiXG4iKTsKKyAgICAgICAgZGV0YWlsc0Z1bmMoKTsKICAgICAgICAgVU5SRUFDSEFCTEVfRk9S
X1BMQVRGT1JNKCk7CiAgICAgfTsKICAgICAKQEAgLTI4Myw2ICsyNzgsMjUgQEAgQUxXQVlTX0lO
TElORSBib29sIFN0cnVjdHVyZTo6Y2hlY2tPZmZzZQogICAgIHJldHVybiB0cnVlOwogfQogCitB
TFdBWVNfSU5MSU5FIGJvb2wgU3RydWN0dXJlOjpjaGVja09mZnNldENvbnNpc3RlbmN5KCkgY29u
c3QKK3sKKyAgICBQcm9wZXJ0eVRhYmxlKiBwcm9wZXJ0eVRhYmxlID0gcHJvcGVydHlUYWJsZU9y
TnVsbCgpOworCisgICAgaWYgKCFwcm9wZXJ0eVRhYmxlKSB7CisgICAgICAgIEFTU0VSVCghaXNQ
aW5uZWRQcm9wZXJ0eVRhYmxlKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICAvLyBXZSBjYW5ub3QgcmVsaWFibHkgYXNzZXJ0IHRoaW5ncyBhYm91dCB0aGUgcHJvcGVydHkg
dGFibGUgaW4gdGhlIGNvbmN1cnJlbnQKKyAgICAvLyBjb21waWxhdGlvbiB0aHJlYWQuIEl0IGlz
IHBvc3NpYmxlIGZvciB0aGUgdGFibGUgdG8gYmUgc3RvbGVuIGFuZCB0aGVuIGhhdmUKKyAgICAv
LyB0aGluZ3MgYWRkZWQgdG8gaXQsIHdoaWNoIGxlYWRzIHRvIHRoZSBvZmZzZXRzIGJlaW5nIGFs
bCBtZXNzZWQgdXAuIFdlIGNvdWxkCisgICAgLy8gZ2V0IGFyb3VuZCB0aGlzIGJ5IGdyYWJiaW5n
IGEgbG9jayBoZXJlLCBidXQgSSB0aGluayB0aGF0IHdvdWxkIGJlIG92ZXJraWxsLgorICAgIGlm
IChpc0NvbXBpbGF0aW9uVGhyZWFkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0
dXJuIGNoZWNrT2Zmc2V0Q29uc2lzdGVuY3kocHJvcGVydHlUYWJsZSwgW10gKCkgeyB9KTsKK30K
KwogaW5saW5lIHZvaWQgU3RydWN0dXJlOjpjaGVja0NvbnNpc3RlbmN5KCkKIHsKICAgICBjaGVj
a09mZnNldENvbnNpc3RlbmN5KCk7CkBAIC0zMDIsMTQgKzMxNiwyMSBAQCBpbmxpbmUgdm9pZCBT
dHJ1Y3R1cmU6OnNldE9iamVjdFRvU3RyaW5nCiAgICAgcmFyZURhdGEoKS0+c2V0T2JqZWN0VG9T
dHJpbmdWYWx1ZShleGVjLCB2bSwgdGhpcywgdmFsdWUsIHRvU3RyaW5nVGFnU3ltYm9sU2xvdCk7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+Cit0ZW1wbGF0ZTxTdHJ1Y3R1cmU6OlNob3Vs
ZFBpbiBzaG91bGRQaW4sIHR5cGVuYW1lIEZ1bmM+CiBpbmxpbmUgUHJvcGVydHlPZmZzZXQgU3Ry
dWN0dXJlOjphZGQoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzLCBjb25zdCBGdW5jJiBmdW5jKQogewogICAgIFByb3BlcnR5VGFibGUqIHRhYmxl
ID0gZW5zdXJlUHJvcGVydHlUYWJsZSh2bSk7CiAKICAgICBHQ1NhZmVDb25jdXJyZW50SlNMb2Nr
ZXIgbG9ja2VyKG1fbG9jaywgdm0uaGVhcCk7Ci0gICAgCi0gICAgc2V0UHJvcGVydHlUYWJsZSh2
bSwgdGFibGUpOworCisgICAgc3dpdGNoIChzaG91bGRQaW4pIHsKKyAgICBjYXNlIFNob3VsZFBp
bjo6WWVzOgorICAgICAgICBwaW4obG9ja2VyLCB2bSwgdGFibGUpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFNob3VsZFBpbjo6Tm86CisgICAgICAgIHNldFByb3BlcnR5VGFibGUodm0sIHRh
YmxlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIAogICAgIEFTU0VSVCghSlNDOjppc1Zh
bGlkT2Zmc2V0KGdldCh2bSwgcHJvcGVydHlOYW1lKSkpOwogCkBAIC0zNjYsOSArMzg3LDcgQEAg
aW5saW5lIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6cmVtb3ZlKAogdGVtcGxhdGU8dHlwZW5h
bWUgRnVuYz4KIGlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5V2l0
aG91dFRyYW5zaXRpb24oVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzLCBjb25zdCBGdW5jJiBmdW5jKQogewotICAgIHBpbih2bSwgZW5zdXJlUHJv
cGVydHlUYWJsZSh2bSkpOwotICAgIAotICAgIHJldHVybiBhZGQodm0sIHByb3BlcnR5TmFtZSwg
YXR0cmlidXRlcywgZnVuYyk7CisgICAgcmV0dXJuIGFkZDxTaG91bGRQaW46Olllcz4odm0sIHBy
b3BlcnR5TmFtZSwgYXR0cmlidXRlcywgZnVuYyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmM+Cg==
</data>
<flag name="review"
          id="321262"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>