<?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>231382</bug_id>
          
          <creation_ts>2021-10-07 11:52:02 -0700</creation_ts>
          <short_desc>RegExpExec can&apos;t statically prove which of the two structures it will get in AI by just looking at the RegExp*</short_desc>
          <delta_ts>2021-10-08 12:33:53 -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>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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801694</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-07 11:52:02 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801695</commentid>
    <comment_count>1</comment_count>
      <attachid>440519</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-07 11:56:54 -0700</bug_when>
    <thetext>Created attachment 440519
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801698</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-07 11:57:46 -0700</bug_when>
    <thetext>&lt;rdar://83722151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801699</commentid>
    <comment_count>3</comment_count>
      <attachid>440520</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-07 11:58:30 -0700</bug_when>
    <thetext>Created attachment 440520
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801701</commentid>
    <comment_count>4</comment_count>
      <attachid>440520</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2021-10-07 12:03:46 -0700</bug_when>
    <thetext>Comment on attachment 440520
patch

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

&gt; JSTests/stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js:6
&gt; +    let a = r.exec(/b/);

Do you really want to match a RegExp (/b/) with r?  Or does that somehow trigger the prior bug?

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Because of the RegExp.prototype.compile API, we don&apos;t know if the RegExp

I think you want to change the last &quot;RegExp&quot; in this line to &quot;Match result&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801780</commentid>
    <comment_count>5</comment_count>
      <attachid>440520</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-10-07 14:13:45 -0700</bug_when>
    <thetext>Comment on attachment 440520
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802155</commentid>
    <comment_count>6</comment_count>
      <attachid>440520</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-08 10:46:55 -0700</bug_when>
    <thetext>Comment on attachment 440520
patch

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

&gt;&gt; JSTests/stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js:6
&gt;&gt; +    let a = r.exec(/b/);
&gt; 
&gt; Do you really want to match a RegExp (/b/) with r?  Or does that somehow trigger the prior bug?

This is just the test the fuzzer came up with.

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        Because of the RegExp.prototype.compile API, we don&apos;t know if the RegExp
&gt; 
&gt; I think you want to change the last &quot;RegExp&quot; in this line to &quot;Match result&quot;

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802158</commentid>
    <comment_count>7</comment_count>
      <attachid>440645</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-08 10:55:38 -0700</bug_when>
    <thetext>Created attachment 440645
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802185</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-08 12:01:51 -0700</bug_when>
    <thetext>Committed r283818 (242709@main): &lt;https://commits.webkit.org/242709@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440645.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802194</commentid>
    <comment_count>9</comment_count>
      <attachid>440520</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-08 12:33:53 -0700</bug_when>
    <thetext>Comment on attachment 440520
patch

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

&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt;&gt; +        Because of the RegExp.prototype.compile API, we don&apos;t know if the RegExp
&gt;&gt; 
&gt;&gt; I think you want to change the last &quot;RegExp&quot; in this line to &quot;Match result&quot;
&gt; 
&gt; Will fix.

I forgot to do this 🤦‍♂️</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440519</attachid>
            <date>2021-10-07 11:56:54 -0700</date>
            <delta_ts>2021-10-07 11:58:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4470</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODM3MjkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTEwLTA3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZ0V4cEV4ZWMgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3aGljaCBv
ZiB0aGUgdHdvIHN0cnVjdHVyZXMgaXQgd2lsbCBnZXQgaW4gQUkgYnkganVzdCBsb29raW5nIGF0
IHRoZSBSZWdFeHAqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzEzODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0cmVzcy9yZWctZXhwLWV4ZWMtY2FudC1wcm92ZS13aGljaC1zdHJ1Y3R1cmUtaXQt
cHJvZHVjZXMtaW4tYWkuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAyMS0xMC0wNyAg
UGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10g
VGVtcG9yYWwgdHdlYWtzIHRvIHBhc3MgbW9yZSB0ZXN0MjYyIHRlc3RzCkluZGV4OiBKU1Rlc3Rz
L3N0cmVzcy9yZWctZXhwLWV4ZWMtY2FudC1wcm92ZS13aGljaC1zdHJ1Y3R1cmUtaXQtcHJvZHVj
ZXMtaW4tYWkuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9zdHJlc3MvcmVnLWV4cC1leGVjLWNh
bnQtcHJvdmUtd2hpY2gtc3RydWN0dXJlLWl0LXByb2R1Y2VzLWluLWFpLmpzCShub25leGlzdGVu
dCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZy1leHAtZXhlYy1jYW50LXByb3ZlLXdoaWNoLXN0cnVj
dHVyZS1pdC1wcm9kdWNlcy1pbi1haS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBA
CisvLyBUaGlzIHNob3VsZCBub3QgY3Jhc2guCisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICBsZXQg
ciA9IC9hLzsKKyAgICByLmNvbXBpbGUodW5kZWZpbmVkLCAuLi4nZCcpOworICAgIGxldCBhID0g
ci5leGVjKC9iLyk7CisgICAgYS54OworfQorCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDA7IGkr
KykgeworICAgIGZvbygpOworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biAyODM1NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMTAtMDcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVnRXhwRXhlYyBjYW4ndCBzdGF0aWNhbGx5IHByb3ZlIHdo
aWNoIG9mIHRoZSB0d28gc3RydWN0dXJlcyBpdCB3aWxsIGdldCBpbiBBSSBieSBqdXN0IGxvb2tp
bmcgYXQgdGhlIFJlZ0V4cCoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTM4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEJlY2F1c2Ugb2YgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBBUEksIHdl
IGRvbid0IGtub3cgaWYgdGhlIFJlZ0V4cAorICAgICAgICBwcm9kdWNlZCBieSBSZWdFeHBFeGVj
IHdpbGwgaGF2ZSBpbmRpY2VzIG9yIG5vdCwgYmVjYXVzZSB0aGF0IGJpdCBvZgorICAgICAgICBp
bmZvcm1hdGlvbiBjYW4gYmUgcmVzZXQgYnkgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBB
UEkuIFNvLCB3ZQorICAgICAgICBjb25zZXJ2YXRpdmVseSBzYXkgdGhhdCBpdCBjYW4gcHJvZHVj
ZSBlaXRoZXIgc3RydWN0dXJlLiAKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMjEtMTAtMDUgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvZGVCbG9jayBzaG91bGQgbm90IGFk
ZC9yZW1vdmUgTG9vcEhpbnRFeGVjdXRpb25Db3VudGVycy4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgJKHJldmlzaW9uIDI4MzU2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJz
dHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYxNSwyNCArMjYx
NSw5IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAg
ICAgIGlmIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KG1fdm0sIGdsb2JhbE9iamVjdFZhbHVlKSkgewogICAgICAgICAgICAgICAg
IGlmICghZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3QtPmhhdmlu
Z0FCYWRUaW1lV2F0Y2hwb2ludCgpKTsKLQotICAgICAgICAgICAgICAgICAgICBSZWdFeHAqIHJl
Z0V4cCA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFJl
Z0V4cEV4ZWMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChOb2RlKiByZWdFeHBPYmpl
Y3ROb2RlID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0ID0gcmVnRXhwT2JqZWN0Tm9kZS0+
ZHluYW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPihtX3ZtKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVnRXhwID0gcmVnRXhwT2JqZWN0LT5yZWdFeHAoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWdFeHBPYmplY3ROb2RlLT5vcCgpID09
IE5ld1JlZ2V4cCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnRXhwID0gcmVn
RXhwT2JqZWN0Tm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5vcCgpID09IFJl
Z0V4cEV4ZWNOb25HbG9iYWxPclN0aWNreSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZ0V4
cCA9IG5vZGUtPmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCk7Ci0KICAgICAgICAgICAgICAgICAgICAg
UmVnaXN0ZXJlZFN0cnVjdHVyZVNldCBzdHJ1Y3R1cmVTZXQ7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIElmIHJlZ0V4cCBpcyB1bmtub3duLCB3ZSBuZWVkIHRvIHB1dCBib3RoIHJlZ0V4cCBNYXRj
aGVzQXJyYXkgc3RydWN0dXJlIHZhcmlhbnRzIGluIG91ciBzZXQuCi0gICAgICAgICAgICAgICAg
ICAgIGlmICghcmVnRXhwIHx8ICFyZWdFeHAtPmhhc0luZGljZXMoKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdHVyZVNldC5hZGQobV9ncmFwaC5yZWdpc3RlclN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmICghcmVnRXhwIHx8IHJlZ0V4cC0+aGFzSW5kaWNlcygpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0dXJlU2V0LmFkZChtX2dyYXBoLnJlZ2lzdGVyU3RydWN0dXJlKGds
b2JhbE9iamVjdC0+cmVnRXhwTWF0Y2hlc0FycmF5V2l0aEluZGljZXNTdHJ1Y3R1cmUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKG1fZ3JhcGgucmVnaXN0ZXJTdHJ1
Y3R1cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUoKSkpOworICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBNYXRjaGVzQXJyYXlXaXRoSW5kaWNlc1N0cnVjdHVyZSgp
KSk7CiAgICAgICAgICAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgc3RydWN0dXJlU2V0KTsK
ICAgICAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKS5tZXJnZShTcGVjT3RoZXIpOwogICAg
ICAgICAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440520</attachid>
            <date>2021-10-07 11:58:30 -0700</date>
            <delta_ts>2021-10-08 10:55:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4524</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODM3MjkpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTA3ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZ0V4cEV4ZWMgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3aGljaCBv
ZiB0aGUgdHdvIHN0cnVjdHVyZXMgaXQgd2lsbCBnZXQgaW4gQUkgYnkganVzdCBsb29raW5nIGF0
IHRoZSBSZWdFeHAqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzEzODIKKyAgICAgICAgPHJkYXI6Ly84MzcyMjE1MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy9yZWctZXhwLWV4ZWMtY2Fu
dC1wcm92ZS13aGljaC1zdHJ1Y3R1cmUtaXQtcHJvZHVjZXMtaW4tYWkuanM6IEFkZGVkLgorICAg
ICAgICAoZm9vKToKKwogMjAyMS0xMC0wNyAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0pTQ10gVGVtcG9yYWwgdHdlYWtzIHRvIHBhc3MgbW9yZSB0
ZXN0MjYyIHRlc3RzCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWctZXhwLWV4ZWMtY2FudC1wcm92
ZS13aGljaC1zdHJ1Y3R1cmUtaXQtcHJvZHVjZXMtaW4tYWkuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNU
ZXN0cy9zdHJlc3MvcmVnLWV4cC1leGVjLWNhbnQtcHJvdmUtd2hpY2gtc3RydWN0dXJlLWl0LXBy
b2R1Y2VzLWluLWFpLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZy1leHAt
ZXhlYy1jYW50LXByb3ZlLXdoaWNoLXN0cnVjdHVyZS1pdC1wcm9kdWNlcy1pbi1haS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACisvLyBUaGlzIHNob3VsZCBub3QgY3Jhc2guCisK
K2Z1bmN0aW9uIGZvbygpIHsKKyAgICBsZXQgciA9IC9hLzsKKyAgICByLmNvbXBpbGUodW5kZWZp
bmVkLCAuLi4nZCcpOworICAgIGxldCBhID0gci5leGVjKC9iLyk7CisgICAgYS54OworfQorCitm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGZvbygpOworfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODM1NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTAt
MDcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnRXhwRXhl
YyBjYW4ndCBzdGF0aWNhbGx5IHByb3ZlIHdoaWNoIG9mIHRoZSB0d28gc3RydWN0dXJlcyBpdCB3
aWxsIGdldCBpbiBBSSBieSBqdXN0IGxvb2tpbmcgYXQgdGhlIFJlZ0V4cCoKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM4MgorICAgICAgICA8cmRh
cjovLzgzNzIyMTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJlY2F1c2Ugb2YgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBBUEksIHdlIGRv
bid0IGtub3cgaWYgdGhlIFJlZ0V4cAorICAgICAgICBwcm9kdWNlZCBieSBSZWdFeHBFeGVjIHdp
bGwgaGF2ZSBpbmRpY2VzIG9yIG5vdCwgYmVjYXVzZSB0aGF0IGJpdCBvZgorICAgICAgICBpbmZv
cm1hdGlvbiBjYW4gYmUgcmVzZXQgYnkgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBBUEku
IFNvLCB3ZQorICAgICAgICBjb25zZXJ2YXRpdmVseSBzYXkgdGhhdCBpdCBjYW4gcHJvZHVjZSBl
aXRoZXIgc3RydWN0dXJlLiAKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMjEtMTAtMDUgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENvZGVCbG9jayBzaG91bGQgbm90IGFkZC9y
ZW1vdmUgTG9vcEhpbnRFeGVjdXRpb25Db3VudGVycy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MzU2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYxNSwyNCArMjYxNSw5
IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAg
IGlmIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0dsb2Jh
bE9iamVjdCo+KG1fdm0sIGdsb2JhbE9iamVjdFZhbHVlKSkgewogICAgICAgICAgICAgICAgIGlm
ICghZ2xvYmFsT2JqZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgbV9ncmFwaC53YXRjaHBvaW50cygpLmFkZExhemlseShnbG9iYWxPYmplY3QtPmhhdmluZ0FC
YWRUaW1lV2F0Y2hwb2ludCgpKTsKLQotICAgICAgICAgICAgICAgICAgICBSZWdFeHAqIHJlZ0V4
cCA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFJlZ0V4
cEV4ZWMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChOb2RlKiByZWdFeHBPYmplY3RO
b2RlID0gbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKFJlZ0V4cE9iamVjdCogcmVnRXhwT2JqZWN0ID0gcmVnRXhwT2JqZWN0Tm9kZS0+ZHlu
YW1pY0Nhc3RDb25zdGFudDxSZWdFeHBPYmplY3QqPihtX3ZtKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVnRXhwID0gcmVnRXhwT2JqZWN0LT5yZWdFeHAoKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWdFeHBPYmplY3ROb2RlLT5vcCgpID09IE5l
d1JlZ2V4cCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnRXhwID0gcmVnRXhw
T2JqZWN0Tm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLT5vcCgpID09IFJlZ0V4
cEV4ZWNOb25HbG9iYWxPclN0aWNreSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZ0V4cCA9
IG5vZGUtPmNhc3RPcGVyYW5kPFJlZ0V4cCo+KCk7Ci0KICAgICAgICAgICAgICAgICAgICAgUmVn
aXN0ZXJlZFN0cnVjdHVyZVNldCBzdHJ1Y3R1cmVTZXQ7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IElmIHJlZ0V4cCBpcyB1bmtub3duLCB3ZSBuZWVkIHRvIHB1dCBib3RoIHJlZ0V4cCBNYXRjaGVz
QXJyYXkgc3RydWN0dXJlIHZhcmlhbnRzIGluIG91ciBzZXQuCi0gICAgICAgICAgICAgICAgICAg
IGlmICghcmVnRXhwIHx8ICFyZWdFeHAtPmhhc0luZGljZXMoKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdHVyZVNldC5hZGQobV9ncmFwaC5yZWdpc3RlclN0cnVjdHVyZShnbG9iYWxP
YmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICghcmVnRXhwIHx8IHJlZ0V4cC0+aGFzSW5kaWNlcygpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0dXJlU2V0LmFkZChtX2dyYXBoLnJlZ2lzdGVyU3RydWN0dXJlKGdsb2Jh
bE9iamVjdC0+cmVnRXhwTWF0Y2hlc0FycmF5V2l0aEluZGljZXNTdHJ1Y3R1cmUoKSkpOworICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBNYXRjaGVzQXJyYXlTdHJ1Y3R1cmUoKSkpOworICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKG1fZ3JhcGgucmVnaXN0ZXJTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LT5yZWdFeHBNYXRjaGVzQXJyYXlXaXRoSW5kaWNlc1N0cnVjdHVyZSgpKSk7
CiAgICAgICAgICAgICAgICAgICAgIHNldEZvck5vZGUobm9kZSwgc3RydWN0dXJlU2V0KTsKICAg
ICAgICAgICAgICAgICAgICAgZm9yTm9kZShub2RlKS5tZXJnZShTcGVjT3RoZXIpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsK
</data>
<flag name="review"
          id="464489"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440645</attachid>
            <date>2021-10-08 10:55:38 -0700</date>
            <delta_ts>2021-10-08 12:01:53 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4538</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODM4MTEpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTA4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZ0V4cEV4ZWMgY2FuJ3Qgc3RhdGljYWxseSBwcm92ZSB3aGljaCBv
ZiB0aGUgdHdvIHN0cnVjdHVyZXMgaXQgd2lsbCBnZXQgaW4gQUkgYnkganVzdCBsb29raW5nIGF0
IHRoZSBSZWdFeHAqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzEzODIKKyAgICAgICAgPHJkYXI6Ly84MzcyMjE1MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIHN0cmVzcy9yZWctZXhwLWV4ZWMtY2FudC1wcm92
ZS13aGljaC1zdHJ1Y3R1cmUtaXQtcHJvZHVjZXMtaW4tYWkuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKwogMjAyMS0xMC0wNyAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0pTQ10gVGVtcG9yYWwgdHdlYWtzIHRvIHBhc3MgbW9yZSB0ZXN0MjYy
IHRlc3RzCkluZGV4OiBKU1Rlc3RzL3N0cmVzcy9yZWctZXhwLWV4ZWMtY2FudC1wcm92ZS13aGlj
aC1zdHJ1Y3R1cmUtaXQtcHJvZHVjZXMtaW4tYWkuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNUZXN0cy9z
dHJlc3MvcmVnLWV4cC1leGVjLWNhbnQtcHJvdmUtd2hpY2gtc3RydWN0dXJlLWl0LXByb2R1Y2Vz
LWluLWFpLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNzL3JlZy1leHAtZXhlYy1j
YW50LXByb3ZlLXdoaWNoLXN0cnVjdHVyZS1pdC1wcm9kdWNlcy1pbi1haS5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEyIEBACisvLyBUaGlzIHNob3VsZCBub3QgY3Jhc2guCisKK2Z1bmN0
aW9uIGZvbygpIHsKKyAgICBsZXQgciA9IC9hLzsKKyAgICByLmNvbXBpbGUodW5kZWZpbmVkLCAu
Li4nZCcpOworICAgIGxldCBhID0gci5leGVjKC9iLyk7CisgICAgYS54OworfQorCitmb3IgKGxl
dCBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAgIGZvbygpOworfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODM4MTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMTAtMDggIFNh
YW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVnRXhwRXhlYyBjYW4n
dCBzdGF0aWNhbGx5IHByb3ZlIHdoaWNoIG9mIHRoZSB0d28gc3RydWN0dXJlcyBpdCB3aWxsIGdl
dCBpbiBBSSBieSBqdXN0IGxvb2tpbmcgYXQgdGhlIFJlZ0V4cCoKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTM4MgorICAgICAgICA8cmRhcjovLzgz
NzIyMTUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEJlY2F1
c2Ugb2YgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBBUEksIHdlIGRvbid0IGtub3cgaWYg
dGhlIFJlZ0V4cAorICAgICAgICBwcm9kdWNlZCBieSBSZWdFeHBFeGVjIHdpbGwgaGF2ZSBpbmRp
Y2VzIG9yIG5vdCwgYmVjYXVzZSB0aGF0IGJpdCBvZgorICAgICAgICBpbmZvcm1hdGlvbiBjYW4g
YmUgcmVzZXQgYnkgdGhlIFJlZ0V4cC5wcm90b3R5cGUuY29tcGlsZSBBUEkuIFNvLCB3ZQorICAg
ICAgICBjb25zZXJ2YXRpdmVseSBzYXkgdGhhdCBpdCBjYW4gcHJvZHVjZSBlaXRoZXIgc3RydWN0
dXJlLiAKKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMjEtMTAtMDcgIEFsZXhleSBTaHZheWthICA8c2h2YWlr
YWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIGBoaWdoV2F0ZXJNYXJrYCBzaG91bGQgYmUgYSBy
ZWFkb25seSBXZWJJREwgYXR0cmlidXRlIG9mIHF1ZXVpbmcgc3RyYXRlZ2llcwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAkocmV2aXNpb24gMjgzODExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NjE1LDI0ICsyNjE1LDkgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eQogICAgICAgICAgICAgaWYgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4obV92bSwgZ2xvYmFsT2JqZWN0VmFsdWUpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKCFnbG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSkgewogICAg
ICAgICAgICAgICAgICAgICBtX2dyYXBoLndhdGNocG9pbnRzKCkuYWRkTGF6aWx5KGdsb2JhbE9i
amVjdC0+aGF2aW5nQUJhZFRpbWVXYXRjaHBvaW50KCkpOwotCi0gICAgICAgICAgICAgICAgICAg
IFJlZ0V4cCogcmVnRXhwID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUt
Pm9wKCkgPT0gUmVnRXhwRXhlYykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE5vZGUq
IHJlZ0V4cE9iamVjdE5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2RlKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoUmVnRXhwT2JqZWN0KiByZWdFeHBPYmplY3QgPSByZWdFeHBP
YmplY3ROb2RlLT5keW5hbWljQ2FzdENvbnN0YW50PFJlZ0V4cE9iamVjdCo+KG1fdm0pKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdFeHAgPSByZWdFeHBPYmplY3QtPnJlZ0V4
cCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZ0V4cE9iamVjdE5v
ZGUtPm9wKCkgPT0gTmV3UmVnZXhwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWdFeHAgPSByZWdFeHBPYmplY3ROb2RlLT5jYXN0T3BlcmFuZDxSZWdFeHAqPigpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUt
Pm9wKCkgPT0gUmVnRXhwRXhlY05vbkdsb2JhbE9yU3RpY2t5KQotICAgICAgICAgICAgICAgICAg
ICAgICAgcmVnRXhwID0gbm9kZS0+Y2FzdE9wZXJhbmQ8UmVnRXhwKj4oKTsKLQogICAgICAgICAg
ICAgICAgICAgICBSZWdpc3RlcmVkU3RydWN0dXJlU2V0IHN0cnVjdHVyZVNldDsKLSAgICAgICAg
ICAgICAgICAgICAgLy8gSWYgcmVnRXhwIGlzIHVua25vd24sIHdlIG5lZWQgdG8gcHV0IGJvdGgg
cmVnRXhwIE1hdGNoZXNBcnJheSBzdHJ1Y3R1cmUgdmFyaWFudHMgaW4gb3VyIHNldC4KLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCFyZWdFeHAgfHwgIXJlZ0V4cC0+aGFzSW5kaWNlcygpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlU2V0LmFkZChtX2dyYXBoLnJlZ2lzdGVyU3Ry
dWN0dXJlKGdsb2JhbE9iamVjdC0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkpKTsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKCFyZWdFeHAgfHwgcmVnRXhwLT5oYXNJbmRpY2VzKCkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVTZXQuYWRkKG1fZ3JhcGgucmVnaXN0ZXJT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5yZWdFeHBNYXRjaGVzQXJyYXlXaXRoSW5kaWNlc1N0cnVj
dHVyZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZVNldC5hZGQobV9ncmFwaC5y
ZWdpc3RlclN0cnVjdHVyZShnbG9iYWxPYmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVy
ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZVNldC5hZGQobV9ncmFwaC5yZWdp
c3RlclN0cnVjdHVyZShnbG9iYWxPYmplY3QtPnJlZ0V4cE1hdGNoZXNBcnJheVdpdGhJbmRpY2Vz
U3RydWN0dXJlKCkpKTsKICAgICAgICAgICAgICAgICAgICAgc2V0Rm9yTm9kZShub2RlLCBzdHJ1
Y3R1cmVTZXQpOwogICAgICAgICAgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLm1lcmdlKFNwZWNP
dGhlcik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>