<?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>214403</bug_id>
          
          <creation_ts>2020-07-16 03:48:14 -0700</creation_ts>
          <short_desc>[JSC] Use unvalidatedGet instead of get to access UnlinkedCodeBlock from CodeBlock destructor</short_desc>
          <delta_ts>2020-07-16 12:46:17 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1672086</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 03:48:14 -0700</bug_when>
    <thetext>[JSC] Touch UnlinkedCodeBlock from CodeBlock destructor by using unvalidatedGet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672087</commentid>
    <comment_count>1</comment_count>
      <attachid>404433</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 03:50:41 -0700</bug_when>
    <thetext>Created attachment 404433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672088</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 03:50:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/65527229&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672174</commentid>
    <comment_count>3</comment_count>
      <attachid>404433</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-07-16 10:18:54 -0700</bug_when>
    <thetext>Comment on attachment 404433
Patch

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

r=me if EWS bots are green.  The mac-wk1 bot was red but I told it to re-run the test.  If the failure is real, please fix before landing.  Thanks.

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        [JSC] Touch UnlinkedCodeBlock from CodeBlock destructor by using unvalidatedGet

I suggest renaming this title to &quot;Use unvalidatedGet instead of get to access UnlinkedCodeBlock from CodeBlock destructor&quot;.  The current title reads to me like an imperative to add some code to access the UnlinkedCodeBlock, whereas what you meant is that when we access it, we need to use unvalidatedGet.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:820
&gt; +    // We use unvalidatedGet because validation rejects get() access when we are destroying cells.

I suggest rephrasing as &quot;because get() has a validation assertion that rejects access&quot;.  Mentioning the &quot;assertion&quot; here also sets the context for the next point.

&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:821
&gt; +    // This is right assertion since destruction order of cells is not defined, so member cells would get destroyed already.

I suggest rephrasing as &quot;This assertion is correct since destruction order of cells is not guaranteed, and member cells could already be destroyed.&quot;

&gt; JSTests/stress/codeblock-destructor-access-unlinkedcodeblock.js:2
&gt; +//@ runDefault(&quot;--returnEarlyFromInfiniteLoopsForFuzzing=1&quot;)
&gt; +//@ slow!

Please skip for memoryLimited.  I&apos;m using memoryLimited here as a proxy for slow machines here.  The armv7 and mips bots are showing that this tests times out there.  I&apos;m guessing this might also be the case for other embedded / memory limited devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672209</commentid>
    <comment_count>4</comment_count>
      <attachid>404433</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 12:35:22 -0700</bug_when>
    <thetext>Comment on attachment 404433
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:3
&gt;&gt; +        [JSC] Touch UnlinkedCodeBlock from CodeBlock destructor by using unvalidatedGet
&gt; 
&gt; I suggest renaming this title to &quot;Use unvalidatedGet instead of get to access UnlinkedCodeBlock from CodeBlock destructor&quot;.  The current title reads to me like an imperative to add some code to access the UnlinkedCodeBlock, whereas what you meant is that when we access it, we need to use unvalidatedGet.

Changed.

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:820
&gt;&gt; +    // We use unvalidatedGet because validation rejects get() access when we are destroying cells.
&gt; 
&gt; I suggest rephrasing as &quot;because get() has a validation assertion that rejects access&quot;.  Mentioning the &quot;assertion&quot; here also sets the context for the next point.

Changed.

&gt;&gt; Source/JavaScriptCore/bytecode/CodeBlock.cpp:821
&gt;&gt; +    // This is right assertion since destruction order of cells is not defined, so member cells would get destroyed already.
&gt; 
&gt; I suggest rephrasing as &quot;This assertion is correct since destruction order of cells is not guaranteed, and member cells could already be destroyed.&quot;

Changed.

&gt;&gt; JSTests/stress/codeblock-destructor-access-unlinkedcodeblock.js:2
&gt;&gt; +//@ slow!
&gt; 
&gt; Please skip for memoryLimited.  I&apos;m using memoryLimited here as a proxy for slow machines here.  The armv7 and mips bots are showing that this tests times out there.  I&apos;m guessing this might also be the case for other embedded / memory limited devices.

OK, added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672210</commentid>
    <comment_count>5</comment_count>
      <attachid>404474</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 12:39:54 -0700</bug_when>
    <thetext>Created attachment 404474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672212</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 12:42:18 -0700</bug_when>
    <thetext>Committed r264473: &lt;https://trac.webkit.org/changeset/264473&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404433</attachid>
            <date>2020-07-16 03:50:41 -0700</date>
            <delta_ts>2020-07-16 12:39:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214403-20200716035040.patch</filename>
            <type>text/plain</type>
            <size>5720</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NDQyNGRiNDI2NTFiNjFkOTk4MTE1Y2VkZDUzMDViNzY0ZWNhZTAwLi43YmVkZGYxMzBjYWRlMjBm
ODY4NzI4MzViMTgzNDMzNTBiNGRlNWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRvdWNoIFVubGlua2VkQ29kZUJsb2NrIGZyb20gQ29kZUJsb2Nr
IGRlc3RydWN0b3IgYnkgdXNpbmcgdW52YWxpZGF0ZWRHZXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDQwMworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjU1MjcyMjk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV3JpdGVCYXJyaWVyPD46OmdldCBoYXMgYSBjaGVjayB3aGV0aGVyIHRoaXMgaXMgbm90
IGV4ZWN1dGVkIHdoZW4gc3dlZXBpbmcgY2VsbHMuIFRoaXMgaXMgZ29vZCBhc3NlcnRpb24gc2lu
Y2UKKyAgICAgICAgZGVzdHJ1Y3Rpb24gb3JkZXIgb2YgY2VsbHMgYXJlIG5vdCBkZWZpbmVkIGlu
IGdlbmVyYWwsIHNvIG1lbWJlciBjZWxsIGFjY2VzcyBmcm9tIGEgZGVzdHJ1Y3RvciBpcyBhbG1v
c3QgYWx3YXlzIHdyb25nLgorICAgICAgICBCdXQgaW4gQ29kZUJsb2NrIGNhc2UsIHRoaXMgaXMg
T0sgYmVjYXVzZSAoMSkgQ29kZUJsb2NrIGRlc3RydWN0b3IgYWNjZXNzZXMgVW5saW5rZWRDb2Rl
QmxvY2sgYW5kICgyKSBHQyBlbnN1cmVzIHRoYXQKKyAgICAgICAgQ29kZUJsb2NrIGdldHMgZGVz
dHJveWVkIGJlZm9yZSBVbmxpbmtlZENvZGVCbG9jayBnZXRzIGRlc3Ryb3llZC4gU28gdGhpcyBh
c3NlcnRpb24gaXMgaGl0IGluY29ycmVjdGx5LgorICAgICAgICBJbiB0aGlzIHBhdGNoLCB3ZSB1
c2UgV3JpdGVCYXJyaWVyPD46OnVudmFsaWRhdGVkR2V0IGluIENvZGVCbG9jayBkZXN0cnVjdG9y
IHRvIGJ5cGFzcyB0aGUgYWJvdmUgYXNzZXJ0aW9uIGV4cGxpY2l0bHkuCisKKyAgICAgICAgKiBi
eXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6On5Db2RlQmxv
Y2spOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmRlbGV0
ZVVubWFya2VkQ29tcGlsZWRDb2RlKToKKwogMjAyMC0wNy0xNSAgRnVqaWkgSGlyb25vcmkgIDxI
aXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdW1dlYkRyaXZlcl0gR2Vu
ZXJhdGluZyBXZWJEcml2ZXJBdG9tcy5jcHAgaXMgcmFyZWx5IGZhaWxpbmcgYXMgIkltcG9ydEVy
cm9yOiBObyBtb2R1bGUgbmFtZWQganNtaW4iCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDM3MDdkNGEwNjI0NDdmYzYwZjEzYTQ3YjM2ZTRhNDdj
OWY2ODZhZDUuLjBjZjk0NzA2NjY5NTJiZjRmN2E3MTllNzU4NDVmYTExYzc1NjIxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC04MTcsOCAr
ODE3LDE0IEBAIENvZGVCbG9jazo6fkNvZGVCbG9jaygpCiB7CiAgICAgVk0mIHZtID0gKm1fdm07
CiAKKyAgICAvLyBXZSB1c2UgdW52YWxpZGF0ZWRHZXQgYmVjYXVzZSB2YWxpZGF0aW9uIHJlamVj
dHMgZ2V0KCkgYWNjZXNzIHdoZW4gd2UgYXJlIGRlc3Ryb3lpbmcgY2VsbHMuCisgICAgLy8gVGhp
cyBpcyByaWdodCBhc3NlcnRpb24gc2luY2UgZGVzdHJ1Y3Rpb24gb3JkZXIgb2YgY2VsbHMgaXMg
bm90IGRlZmluZWQsIHNvIG1lbWJlciBjZWxscyB3b3VsZCBnZXQgZGVzdHJveWVkIGFscmVhZHku
CisgICAgLy8gQnV0IGZvciBDb2RlQmxvY2ssIHdlIGFyZSBlbnN1cmluZyB0aGUgb3JkZXI6IENv
ZGVCbG9jayBnZXRzIGRlc3Ryb3llZCBiZWZvcmUgVW5saW5rZWRDb2RlQmxvY2sgZ2V0cyBkZXN0
cm95ZWQuCisgICAgLy8gU28sIHdlIGNhbiBhY2Nlc3MgbWVtYmVyIFVubGlua2VkQ29kZUJsb2Nr
IHNhZmVseSBoZXJlLiBXZSBieXBhc3MgdGhlIGFzc2VydGlvbiBieSB1c2luZyB1bnZhbGlkYXRl
ZEdldC4KKyAgICBVbmxpbmtlZENvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSBtX3VubGlu
a2VkQ29kZS51bnZhbGlkYXRlZEdldCgpOworCiAgICAgaWYgKE9wdGlvbnM6OnJldHVybkVhcmx5
RnJvbUluZmluaXRlTG9vcHNGb3JGdXp6aW5nKCkgJiYgSklUQ29kZTo6aXNCYXNlbGluZUNvZGUo
aml0VHlwZSgpKSkgewotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGluc3RydWN0aW9uIDogaW5z
dHJ1Y3Rpb25zKCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpbnN0cnVjdGlvbiA6IHVu
bGlua2VkQ29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKSkgewogICAgICAgICAgICAgaWYgKGluc3Ry
dWN0aW9uLT5pczxPcExvb3BIaW50PigpKQogICAgICAgICAgICAgICAgIHZtLnJlbW92ZUxvb3BI
aW50RXhlY3V0aW9uQ291bnRlcihpbnN0cnVjdGlvbi5wdHIoKSk7CiAgICAgICAgIH0KQEAgLTg0
OSw4ICs4NTUsOCBAQCBDb2RlQmxvY2s6On5Db2RlQmxvY2soKQogICAgIGlmIChVTkxJS0VMWSh2
bS5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKQogICAgICAgICB2bS5tX3BlckJ5dGVjb2RlUHJvZmls
ZXItPm5vdGlmeURlc3RydWN0aW9uKHRoaXMpOwogCi0gICAgaWYgKCF2bS5oZWFwLmlzU2h1dHRp
bmdEb3duKCkgJiYgdW5saW5rZWRDb2RlQmxvY2soKS0+ZGlkT3B0aW1pemUoKSA9PSBUcmlTdGF0
ZTo6SW5kZXRlcm1pbmF0ZSkKLSAgICAgICAgdW5saW5rZWRDb2RlQmxvY2soKS0+c2V0RGlkT3B0
aW1pemUoVHJpU3RhdGU6OkZhbHNlKTsKKyAgICBpZiAoIXZtLmhlYXAuaXNTaHV0dGluZ0Rvd24o
KSAmJiB1bmxpbmtlZENvZGVCbG9jay0+ZGlkT3B0aW1pemUoKSA9PSBUcmlTdGF0ZTo6SW5kZXRl
cm1pbmF0ZSkKKyAgICAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNldERpZE9wdGltaXplKFRyaVN0
YXRlOjpGYWxzZSk7CiAKICNpZiBFTkFCTEUoVkVSQk9TRV9WQUxVRV9QUk9GSUxFKQogICAgIGR1
bXBWYWx1ZVByb2ZpbGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGVk
ZDVkN2FmOTFiNWNlMGU0NDM2MTFkZDVlNmQ4MjZiOWU1NDExZjUuLjE4NGJiOTQ0NDFkM2ZhNDMz
NDJhZmJmOTY2NWNjMWJlNzM5ZWUwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CkBAIC05NzIsNyArOTcyLDkgQEAgdm9pZCBIZWFwOjpkZWxldGVBbGxVbmxpbmtlZENvZGVCbG9j
a3MoRGVsZXRlQWxsQ29kZUVmZm9ydCBlZmZvcnQpCiB2b2lkIEhlYXA6OmRlbGV0ZVVubWFya2Vk
Q29tcGlsZWRDb2RlKCkKIHsKICAgICB2bSgpLmZvckVhY2hTY3JpcHRFeGVjdXRhYmxlU3BhY2Uo
W10gKGF1dG8mIHNwYWNlKSB7IHNwYWNlLnNwYWNlLnN3ZWVwKCk7IH0pOwotICAgIHZtKCkuZm9y
RWFjaENvZGVCbG9ja1NwYWNlKFtdIChhdXRvJiBzcGFjZSkgeyBzcGFjZS5zcGFjZS5zd2VlcCgp
OyB9KTsgLy8gU3dlZXBpbmcgbXVzdCBvY2N1ciBiZWZvcmUgZGVsZXRpbmcgc3R1YnMsIG90aGVy
d2lzZSB0aGUgc3R1YnMgbWlnaHQgc3RpbGwgdGhpbmsgdGhleSdyZSBhbGl2ZSBhcyB0aGV5IGdl
dCBkZWxldGVkLgorICAgIC8vIFN3ZWVwaW5nIG11c3Qgb2NjdXIgYmVmb3JlIGRlbGV0aW5nIHN0
dWJzLCBvdGhlcndpc2UgdGhlIHN0dWJzIG1pZ2h0IHN0aWxsIHRoaW5rIHRoZXkncmUgYWxpdmUg
YXMgdGhleSBnZXQgZGVsZXRlZC4KKyAgICAvLyBBbmQgQ29kZUJsb2NrIGRlc3RydWN0b3IgaXMg
YXNzdW1pbmcgdGhhdCBDb2RlQmxvY2sgZ2V0cyBkZXN0cm95ZWQgYmVmb3JlIFVubGlua2VkQ29k
ZUJsb2NrIGdldHMgZGVzdHJveWVkLgorICAgIHZtKCkuZm9yRWFjaENvZGVCbG9ja1NwYWNlKFtd
IChhdXRvJiBzcGFjZSkgeyBzcGFjZS5zcGFjZS5zd2VlcCgpOyB9KTsKICAgICBtX2ppdFN0dWJS
b3V0aW5lcy0+ZGVsZXRlVW5tYXJrZWRKZXR0aXNvbmVkU3R1YlJvdXRpbmVzKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTAz
OGI2MmY3Y2IwOWM1YWI5M2NkODNiNmVhY2ViMzA4YjdlNGVmNC4uN2ZmMzQ3Y2M0YTJjMGFlMDQ4
NTIxOGUxZmRjZmEzNmRkNDQ5MzJkMiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wNy0xNiAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFRvdWNoIFVubGlu
a2VkQ29kZUJsb2NrIGZyb20gQ29kZUJsb2NrIGRlc3RydWN0b3IgYnkgdXNpbmcgdW52YWxpZGF0
ZWRHZXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
NDQwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjU1MjcyMjk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY29kZWJsb2NrLWRlc3Ry
dWN0b3ItYWNjZXNzLXVubGlua2VkY29kZWJsb2NrLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisKIDIwMjAtMDctMTUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgog
CiAgICAgICAgIEVtaXQgSGFzT3duUHJvcGVydHlGdW5jdGlvbkNhbGxEb3ROb2RlIGZvciAiUmVm
bGVjdCIgaWRlbnRpZmllcnMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NvZGVibG9jay1k
ZXN0cnVjdG9yLWFjY2Vzcy11bmxpbmtlZGNvZGVibG9jay5qcyBiL0pTVGVzdHMvc3RyZXNzL2Nv
ZGVibG9jay1kZXN0cnVjdG9yLWFjY2Vzcy11bmxpbmtlZGNvZGVibG9jay5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNWZkN2I0ZjVhZjc0YzcwYTQwNWI5ZjU4ZDY2ODg5OGQ2OWNmY2M4Ci0tLSAvZGV2L251bGwK
KysrIGIvSlNUZXN0cy9zdHJlc3MvY29kZWJsb2NrLWRlc3RydWN0b3ItYWNjZXNzLXVubGlua2Vk
Y29kZWJsb2NrLmpzCkBAIC0wLDAgKzEsMTQgQEAKKy8vQCBydW5EZWZhdWx0KCItLXJldHVybkVh
cmx5RnJvbUluZmluaXRlTG9vcHNGb3JGdXp6aW5nPTEiKQorLy9AIHNsb3chCisKKy8vIFRoaXMg
dGVzdCBuZWVkcyAzIHNlY29uZHMgdG8gcmVwcm9kdWNlIHRoZSBjcmFzaC4KKworZnVuY3Rpb24g
Zm9vKCkgeworICAgIGxldCBhPTA7CisgICAgd2hpbGUoMSkgYSsrOworfQorCitmb3IgKGxldCBp
PTA7IGk8MTA7IGkrKykgeworICAgIHJ1blN0cmluZyhgJHtmb28udG9TdHJpbmcoKX07Zm9vKCk7
Zm9vKCk7YCk7Cit9CitnYygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404474</attachid>
            <date>2020-07-16 12:39:54 -0700</date>
            <delta_ts>2020-07-16 12:46:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214403-20200716123954.patch</filename>
            <type>text/plain</type>
            <size>5761</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NDQyNGRiNDI2NTFiNjFkOTk4MTE1Y2VkZDUzMDViNzY0ZWNhZTAwLi5lNWMxN2JiNjE0MjY4ZTZk
OTE0YjZhY2U0MDIzMDZjNDA1OWYyMDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSB1bnZhbGlkYXRlZEdldCBpbnN0ZWFkIG9mIGdldCB0byBh
Y2Nlc3MgVW5saW5rZWRDb2RlQmxvY2sgZnJvbSBDb2RlQmxvY2sgZGVzdHJ1Y3RvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NDAzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NTUyNzIyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExh
bS4KKworICAgICAgICBXcml0ZUJhcnJpZXI8Pjo6Z2V0IGhhcyBhIGNoZWNrIHdoZXRoZXIgdGhp
cyBpcyBub3QgZXhlY3V0ZWQgd2hlbiBzd2VlcGluZyBjZWxscy4gVGhpcyBpcyBnb29kIGFzc2Vy
dGlvbiBzaW5jZQorICAgICAgICBkZXN0cnVjdGlvbiBvcmRlciBvZiBjZWxscyBhcmUgbm90IGRl
ZmluZWQgaW4gZ2VuZXJhbCwgc28gbWVtYmVyIGNlbGwgYWNjZXNzIGZyb20gYSBkZXN0cnVjdG9y
IGlzIGFsbW9zdCBhbHdheXMgd3JvbmcuCisgICAgICAgIEJ1dCBpbiBDb2RlQmxvY2sgY2FzZSwg
dGhpcyBpcyBPSyBiZWNhdXNlICgxKSBDb2RlQmxvY2sgZGVzdHJ1Y3RvciBhY2Nlc3NlcyBVbmxp
bmtlZENvZGVCbG9jayBhbmQgKDIpIEdDIGVuc3VyZXMgdGhhdAorICAgICAgICBDb2RlQmxvY2sg
Z2V0cyBkZXN0cm95ZWQgYmVmb3JlIFVubGlua2VkQ29kZUJsb2NrIGdldHMgZGVzdHJveWVkLiBT
byB0aGlzIGFzc2VydGlvbiBpcyBoaXQgaW5jb3JyZWN0bHkuCisgICAgICAgIEluIHRoaXMgcGF0
Y2gsIHdlIHVzZSBXcml0ZUJhcnJpZXI8Pjo6dW52YWxpZGF0ZWRHZXQgaW4gQ29kZUJsb2NrIGRl
c3RydWN0b3IgdG8gYnlwYXNzIHRoZSBhYm92ZSBhc3NlcnRpb24gZXhwbGljaXRseS4KKworICAg
ICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
fkNvZGVCbG9jayk6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVh
cDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENvZGUpOgorCiAyMDIwLTA3LTE1ICBGdWppaSBIaXJv
bm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV1bV2ViRHJp
dmVyXSBHZW5lcmF0aW5nIFdlYkRyaXZlckF0b21zLmNwcCBpcyByYXJlbHkgZmFpbGluZyBhcyAi
SW1wb3J0RXJyb3I6IE5vIG1vZHVsZSBuYW1lZCBqc21pbiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMzcwN2Q0YTA2MjQ0N2ZjNjBmMTNhNDdi
MzZlNGE0N2M5ZjY4NmFkNS4uNzljNTA1ZjRkMmY1MzFmZWVkNzEzY2E0MzY0NWZiNzlhYzE4Y2Jk
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAg
LTgxNyw4ICs4MTcsMTQgQEAgQ29kZUJsb2NrOjp+Q29kZUJsb2NrKCkKIHsKICAgICBWTSYgdm0g
PSAqbV92bTsKIAorICAgIC8vIFdlIHVzZSB1bnZhbGlkYXRlZEdldCBiZWNhdXNlIGdldCgpIGhh
cyBhIHZhbGlkYXRpb24gYXNzZXJ0aW9uIHRoYXQgcmVqZWN0cyBhY2Nlc3MuCisgICAgLy8gVGhp
cyBhc3NlcnRpb24gaXMgY29ycmVjdCBzaW5jZSBkZXN0cnVjdGlvbiBvcmRlciBvZiBjZWxscyBp
cyBub3QgZ3VhcmFudGVlZCwgYW5kIG1lbWJlciBjZWxscyBjb3VsZCBhbHJlYWR5IGJlIGRlc3Ry
b3llZC4KKyAgICAvLyBCdXQgZm9yIENvZGVCbG9jaywgd2UgYXJlIGVuc3VyaW5nIHRoZSBvcmRl
cjogQ29kZUJsb2NrIGdldHMgZGVzdHJveWVkIGJlZm9yZSBVbmxpbmtlZENvZGVCbG9jayBnZXRz
IGRlc3Ryb3llZC4KKyAgICAvLyBTbywgd2UgY2FuIGFjY2VzcyBtZW1iZXIgVW5saW5rZWRDb2Rl
QmxvY2sgc2FmZWx5IGhlcmUuIFdlIGJ5cGFzcyB0aGUgYXNzZXJ0aW9uIGJ5IHVzaW5nIHVudmFs
aWRhdGVkR2V0LgorICAgIFVubGlua2VkQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IG1f
dW5saW5rZWRDb2RlLnVudmFsaWRhdGVkR2V0KCk7CisKICAgICBpZiAoT3B0aW9uczo6cmV0dXJu
RWFybHlGcm9tSW5maW5pdGVMb29wc0ZvckZ1enppbmcoKSAmJiBKSVRDb2RlOjppc0Jhc2VsaW5l
Q29kZShqaXRUeXBlKCkpKSB7Ci0gICAgICAgIGZvciAoY29uc3QgYXV0byYgaW5zdHJ1Y3Rpb24g
OiBpbnN0cnVjdGlvbnMoKSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGluc3RydWN0aW9u
IDogdW5saW5rZWRDb2RlQmxvY2stPmluc3RydWN0aW9ucygpKSB7CiAgICAgICAgICAgICBpZiAo
aW5zdHJ1Y3Rpb24tPmlzPE9wTG9vcEhpbnQ+KCkpCiAgICAgICAgICAgICAgICAgdm0ucmVtb3Zl
TG9vcEhpbnRFeGVjdXRpb25Db3VudGVyKGluc3RydWN0aW9uLnB0cigpKTsKICAgICAgICAgfQpA
QCAtODQ5LDggKzg1NSw4IEBAIENvZGVCbG9jazo6fkNvZGVCbG9jaygpCiAgICAgaWYgKFVOTElL
RUxZKHZtLm1fcGVyQnl0ZWNvZGVQcm9maWxlcikpCiAgICAgICAgIHZtLm1fcGVyQnl0ZWNvZGVQ
cm9maWxlci0+bm90aWZ5RGVzdHJ1Y3Rpb24odGhpcyk7CiAKLSAgICBpZiAoIXZtLmhlYXAuaXNT
aHV0dGluZ0Rvd24oKSAmJiB1bmxpbmtlZENvZGVCbG9jaygpLT5kaWRPcHRpbWl6ZSgpID09IFRy
aVN0YXRlOjpJbmRldGVybWluYXRlKQotICAgICAgICB1bmxpbmtlZENvZGVCbG9jaygpLT5zZXRE
aWRPcHRpbWl6ZShUcmlTdGF0ZTo6RmFsc2UpOworICAgIGlmICghdm0uaGVhcC5pc1NodXR0aW5n
RG93bigpICYmIHVubGlua2VkQ29kZUJsb2NrLT5kaWRPcHRpbWl6ZSgpID09IFRyaVN0YXRlOjpJ
bmRldGVybWluYXRlKQorICAgICAgICB1bmxpbmtlZENvZGVCbG9jay0+c2V0RGlkT3B0aW1pemUo
VHJpU3RhdGU6OkZhbHNlKTsKIAogI2lmIEVOQUJMRShWRVJCT1NFX1ZBTFVFX1BST0ZJTEUpCiAg
ICAgZHVtcFZhbHVlUHJvZmlsZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5k
ZXggZWRkNWQ3YWY5MWI1Y2UwZTQ0MzYxMWRkNWU2ZDgyNmI5ZTU0MTFmNS4uMTg0YmI5NDQ0MWQz
ZmE0MzM0MmFmYmY5NjY1Y2MxYmU3MzllZTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAKQEAgLTk3Miw3ICs5NzIsOSBAQCB2b2lkIEhlYXA6OmRlbGV0ZUFsbFVubGlua2VkQ29k
ZUJsb2NrcyhEZWxldGVBbGxDb2RlRWZmb3J0IGVmZm9ydCkKIHZvaWQgSGVhcDo6ZGVsZXRlVW5t
YXJrZWRDb21waWxlZENvZGUoKQogewogICAgIHZtKCkuZm9yRWFjaFNjcmlwdEV4ZWN1dGFibGVT
cGFjZShbXSAoYXV0byYgc3BhY2UpIHsgc3BhY2Uuc3BhY2Uuc3dlZXAoKTsgfSk7Ci0gICAgdm0o
KS5mb3JFYWNoQ29kZUJsb2NrU3BhY2UoW10gKGF1dG8mIHNwYWNlKSB7IHNwYWNlLnNwYWNlLnN3
ZWVwKCk7IH0pOyAvLyBTd2VlcGluZyBtdXN0IG9jY3VyIGJlZm9yZSBkZWxldGluZyBzdHVicywg
b3RoZXJ3aXNlIHRoZSBzdHVicyBtaWdodCBzdGlsbCB0aGluayB0aGV5J3JlIGFsaXZlIGFzIHRo
ZXkgZ2V0IGRlbGV0ZWQuCisgICAgLy8gU3dlZXBpbmcgbXVzdCBvY2N1ciBiZWZvcmUgZGVsZXRp
bmcgc3R1YnMsIG90aGVyd2lzZSB0aGUgc3R1YnMgbWlnaHQgc3RpbGwgdGhpbmsgdGhleSdyZSBh
bGl2ZSBhcyB0aGV5IGdldCBkZWxldGVkLgorICAgIC8vIEFuZCBDb2RlQmxvY2sgZGVzdHJ1Y3Rv
ciBpcyBhc3N1bWluZyB0aGF0IENvZGVCbG9jayBnZXRzIGRlc3Ryb3llZCBiZWZvcmUgVW5saW5r
ZWRDb2RlQmxvY2sgZ2V0cyBkZXN0cm95ZWQuCisgICAgdm0oKS5mb3JFYWNoQ29kZUJsb2NrU3Bh
Y2UoW10gKGF1dG8mIHNwYWNlKSB7IHNwYWNlLnNwYWNlLnN3ZWVwKCk7IH0pOwogICAgIG1faml0
U3R1YlJvdXRpbmVzLT5kZWxldGVVbm1hcmtlZEpldHRpc29uZWRTdHViUm91dGluZXMoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCBhMDM4YjYyZjdjYjA5YzVhYjkzY2Q4M2I2ZWFjZWIzMDhiN2U0ZWY0Li4xMTYxZDg0MGRmMjgy
YTY1ZmE0YzViMWQyNGVjNThmMDQ3Y2Y2MGU0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA3LTE2ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVXNlIHVu
dmFsaWRhdGVkR2V0IGluc3RlYWQgb2YgZ2V0IHRvIGFjY2VzcyBVbmxpbmtlZENvZGVCbG9jayBm
cm9tIENvZGVCbG9jayBkZXN0cnVjdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQ0MDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY1NTI3MjI5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogc3RyZXNzL2Nv
ZGVibG9jay1kZXN0cnVjdG9yLWFjY2Vzcy11bmxpbmtlZGNvZGVibG9jay5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorCiAyMDIwLTA3LTE1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KIAogICAgICAgICBFbWl0IEhhc093blByb3BlcnR5RnVuY3Rpb25DYWxsRG90
Tm9kZSBmb3IgIlJlZmxlY3QiIGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9jb2RlYmxvY2stZGVzdHJ1Y3Rvci1hY2Nlc3MtdW5saW5rZWRjb2RlYmxvY2suanMgYi9KU1Rl
c3RzL3N0cmVzcy9jb2RlYmxvY2stZGVzdHJ1Y3Rvci1hY2Nlc3MtdW5saW5rZWRjb2RlYmxvY2su
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzk5YTUxZTFlZTAzY2QwMTlkOTc2MzViNWI2ZDMyZGIzNGIzM2MzOQot
LS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NvZGVibG9jay1kZXN0cnVjdG9yLWFj
Y2Vzcy11bmxpbmtlZGNvZGVibG9jay5qcwpAQCAtMCwwICsxLDE1IEBACisvL0Agc2tpcCBpZiAk
bWVtb3J5TGltaXRlZAorLy9AIHJ1bkRlZmF1bHQoIi0tcmV0dXJuRWFybHlGcm9tSW5maW5pdGVM
b29wc0ZvckZ1enppbmc9MSIpCisvL0Agc2xvdyEKKworLy8gVGhpcyB0ZXN0IG5lZWRzIDMgc2Vj
b25kcyB0byByZXByb2R1Y2UgdGhlIGNyYXNoLgorCitmdW5jdGlvbiBmb28oKSB7CisgICAgbGV0
IGE9MDsKKyAgICB3aGlsZSgxKSBhKys7Cit9CisKK2ZvciAobGV0IGk9MDsgaTwxMDsgaSsrKSB7
CisgICAgcnVuU3RyaW5nKGAke2Zvby50b1N0cmluZygpfTtmb28oKTtmb28oKTtgKTsKK30KK2dj
KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>