<?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>228096</bug_id>
          
          <creation_ts>2021-07-19 18:59:34 -0700</creation_ts>
          <short_desc>REGRESSION (r278702): Cannot login to appaloosa-store.com/users/sign_in</short_desc>
          <delta_ts>2021-07-21 12:46:28 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=228161</see_also>
          <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>
          
          <blocked>226857</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1778081</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-19 18:59:34 -0700</bug_when>
    <thetext>r278702 broke the login page on appaloosa-store.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778082</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-19 18:59:46 -0700</bug_when>
    <thetext>&lt;rdar://80596391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778083</commentid>
    <comment_count>2</comment_count>
      <attachid>433843</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-19 19:04:35 -0700</bug_when>
    <thetext>Created attachment 433843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778181</commentid>
    <comment_count>3</comment_count>
      <attachid>433843</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-20 08:59:27 -0700</bug_when>
    <thetext>Comment on attachment 433843
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:358
&gt; +        data.append(m_buffer-&gt;data(), m_buffer-&gt;size());

This could also call forEachSegment to have fewer copies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778182</commentid>
    <comment_count>4</comment_count>
      <attachid>433843</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-20 09:01:02 -0700</bug_when>
    <thetext>Comment on attachment 433843
Patch

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

&gt;&gt; Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:358
&gt;&gt; +        data.append(m_buffer-&gt;data(), m_buffer-&gt;size());
&gt; 
&gt; This could also call forEachSegment to have fewer copies.

Good idea. Will update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778190</commentid>
    <comment_count>5</comment_count>
      <attachid>433878</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-20 09:37:24 -0700</bug_when>
    <thetext>Created attachment 433878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778200</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-20 10:33:03 -0700</bug_when>
    <thetext>Committed r280085 (239810@main): &lt;https://commits.webkit.org/239810@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433878.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778483</commentid>
    <comment_count>7</comment_count>
      <attachid>433878</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-07-21 12:03:27 -0700</bug_when>
    <thetext>Comment on attachment 433878
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:362
&gt; +    if (buffer-&gt;hasOneRef())
&gt; +        data = buffer-&gt;takeData(); // Avoid copying the data in the case where the buffer isn&apos;t shared.
&gt; +    else {
&gt; +        buffer-&gt;forEachSegment([&amp;data](auto&amp; span) {
&gt; +            data.append(span);
&gt; +        });
&gt; +    }

If this pattern comes up again, perhaps we should consider a function with this logic? A safer &quot;takeData&quot; that will only do so when it’s singly owned, and would instead copy the data into a vector when it’s shared. The trick would be how to abstract the two different approaches, but I think it might be relevant. Here’s one possible implementation:

    Vector&lt;uint8_t&gt; extractData(Ref&lt;SharedBuffer&gt;&amp;&amp; buffer)
    {
        return buffer-&gt;hasOneRef() ? buffer-&gt;takeData() : buffer-&gt;copyData();
    }

And, since the forEachSegment/append optimization is important, we would move that optimization into SharedBuffer::copyData, unless there are some contexts where the current implementation of SharedBuffer::copyData is superior for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1778486</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-21 12:05:35 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 433878 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433878&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:362
&gt; &gt; +    if (buffer-&gt;hasOneRef())
&gt; &gt; +        data = buffer-&gt;takeData(); // Avoid copying the data in the case where the buffer isn&apos;t shared.
&gt; &gt; +    else {
&gt; &gt; +        buffer-&gt;forEachSegment([&amp;data](auto&amp; span) {
&gt; &gt; +            data.append(span);
&gt; &gt; +        });
&gt; &gt; +    }
&gt; 
&gt; If this pattern comes up again, perhaps we should consider a function with
&gt; this logic? A safer &quot;takeData&quot; that will only do so when it’s singly owned,
&gt; and would instead copy the data into a vector when it’s shared. The trick
&gt; would be how to abstract the two different approaches, but I think it might
&gt; be relevant. Here’s one possible implementation:
&gt; 
&gt;     Vector&lt;uint8_t&gt; extractData(Ref&lt;SharedBuffer&gt;&amp;&amp; buffer)
&gt;     {
&gt;         return buffer-&gt;hasOneRef() ? buffer-&gt;takeData() : buffer-&gt;copyData();
&gt;     }
&gt; 
&gt; And, since the forEachSegment/append optimization is important, we would
&gt; move that optimization into SharedBuffer::copyData, unless there are some
&gt; contexts where the current implementation of SharedBuffer::copyData is
&gt; superior for some reason.

Yes, I think this is a good idea.
Now that I have experienced this bug, I actually think takeData() is too dangerous and we should just replace it with the safer alternative that copies when refCount is &gt; 1.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433843</attachid>
            <date>2021-07-19 19:04:35 -0700</date>
            <delta_ts>2021-07-20 09:37:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228096-20210719190434.patch</filename>
            <type>text/plain</type>
            <size>5170</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E4OGM0MTBkZTZlNzdl
NTM2NzJmMzg5OWU2NDNiNzgwZTA1MTNhNy4uZGRjNTM4MDQyZGJlMzUyZjhhYzRmZWI0ZjkxYTU0
MDhjZjEzNGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA3LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3ODcw
Mik6IENhbm5vdCBsb2dpbiB0byBhcHBhbG9vc2Etc3RvcmUuY29tL3VzZXJzL3NpZ25faW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODA5NgorICAg
ICAgICA8cmRhcjovLzgwNTk2MzkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHIyNzg3MDIgYWRkZWQgYW4gb3B0aW1pemF0aW9uIHRvIEZldGNoQm9k
eUNvbnN1bWVyOjp0YWtlQXNCbG9iKCkgdG8gYXZvaWQgYSBjb3B5IG9mIHRoZSBkYXRhLgorICAg
ICAgICBXaGF0IEkgZGlkbid0IHJlYWxpemVkIHdoZW4gSSB3cm90ZSB0aGlzIG9wdGltaXphdGlv
biBpcyB0aGF0IEZldGNoQm9keUNvbnN1bWVyIGlzIGNvcHktY29uc3RydWN0aWJsZQorICAgICAg
ICBhbmQgaXRzIGNvcHkgY29uc3RydWN0b3IgZ2V0cyBjYWxsZWQgd2hlbiBjYWxsaW5nIEZldGNo
UmVzcG9uc2UuY2xvbmUoKS4gVGhlIGNvcHkgY29uc3RydWN0b3Igb25seQorICAgICAgICBkb2Vz
IGEgc2hhbGxvdy1jb3B5IG9mIGl0cyBpbnRlcm5hbCBidWZmZXIgc28gc2V2ZXJhbCBGZXRjaFJl
c3BvbnNlIG9iamVjdHMgY2FuIGVuZCB1cCB3aXRoIHRoZWlyCisgICAgICAgIEZldGNoQm9keUNv
bnN1bWVyIHVzaW5nIHRoZSBzYW1lIHVuZGVybHlpbmcgU2hhcmVkQnVmZmVyIG9iamVjdC4gV2hl
biB0aGF0IFNoYXJlZEJ1ZmZlciBpcyBzaGFyZWQsCisgICAgICAgIGNhbGxpbmcgdGFrZURhdGEo
KSBvbiBpdCBpcyB1bmFjY2VwdGFibGUgYXMgaXQgd2lsbCBkaXN0dXJiIHRoZSBib2R5IG9mIG90
aGVyIEZldGNoIHJlc3BvbnNlcy4KKworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgd2Ug
bm93IG9ubHkgY2FsbCBTaGFyZWRCdWZmZXI6OnRha2VEYXRhKCkgYW5kIGF2b2lkIHRoZSBjb3B5
IHdoZW4gdGhlCisgICAgICAgIFNoYXJlZEJ1ZmZlciBoYXMgYSBSZWZDb3VudCBvZiAxLCBtZWFu
aW5nIHRoYXQgaXMgaXQgbm90IGFjdHVhbGx5IHNoYXJlZC4gSW4gdGhlIGNhc2VzIHdoZXJlIGl0
CisgICAgICAgIGlzIHNoYXJlZCwgd2UgY29weSB0aGUgZGF0YSwgbGlrZSB3ZSB1c2VkIHRvIGRv
IGJlZm9yZSByMjc4NzAyLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvZmV0Y2gvcmVzcG9u
c2UtY2xvbmUtYmxvYi5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjp0YWtlQXNC
bG9iKToKKwogMjAyMS0wNy0xOSAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFBvcnQgPGRpYWxvZz4gY2xvc2UgZXZlbnQgdG8gbW9kZXJuIGV2ZW50IGhhbmRsaW5nIGNv
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29u
c3VtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1l
ci5jcHAKaW5kZXggOWFiNThjMzI3ODc0ZDNkZWEzNzU4N2JlNTk4ZTg4MmViYThlZjMzNS4uNGY1
OTdiNGQ3Yzc1YmM4NjhjYzczYzI1NWE2ZDA0Y2YwZjMyNWRhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTM1MSw3ICsz
NTEsMTEgQEAgUmVmPEJsb2I+IEZldGNoQm9keUNvbnN1bWVyOjp0YWtlQXNCbG9iKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgaWYgKCFtX2J1ZmZlcikKICAgICAgICAgcmV0
dXJuIEJsb2I6OmNyZWF0ZShjb250ZXh0LCBWZWN0b3I8dWludDhfdD4oKSwgQmxvYjo6bm9ybWFs
aXplZENvbnRlbnRUeXBlKG1fY29udGVudFR5cGUpKTsKIAotICAgIGF1dG8gZGF0YSA9IHN0ZDo6
ZXhjaGFuZ2UobV9idWZmZXIsIG51bGxwdHIpLT50YWtlRGF0YSgpOworICAgIFZlY3Rvcjx1aW50
OF90PiBkYXRhOworICAgIGlmIChtX2J1ZmZlci0+aGFzT25lUmVmKCkpCisgICAgICAgIGRhdGEg
PSBzdGQ6OmV4Y2hhbmdlKG1fYnVmZmVyLCBudWxscHRyKS0+dGFrZURhdGEoKTsgLy8gQXZvaWQg
Y29weWluZyB0aGUgZGF0YSBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgYnVmZmVyIGlzbid0IHNoYXJl
ZC4KKyAgICBlbHNlCisgICAgICAgIGRhdGEuYXBwZW5kKG1fYnVmZmVyLT5kYXRhKCksIG1fYnVm
ZmVyLT5zaXplKCkpOwogICAgIHJldHVybiBibG9iRnJvbURhdGEoY29udGV4dCwgV1RGTW92ZShk
YXRhKSwgbV9jb250ZW50VHlwZSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYWExYzcwNzcyZTEzM2Y2MzdjNzVm
MjRiMzE1ZGY3ZThjMzc3ODk5Li4yOTY0MjczODc3MDZhZGE4ZmNiMWQxYzQ2YTZiOGJmODU0MjYy
MzA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDctMTkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjc4NzAyKTogQ2Fubm90IGxv
Z2luIHRvIGFwcGFsb29zYS1zdG9yZS5jb20vdXNlcnMvc2lnbl9pbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MDk2CisgICAgICAgIDxyZGFyOi8v
ODA1OTYzOTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9mZXRj
aC9yZXNwb25zZS1jbG9uZS1ibG9iLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9mZXRjaC9yZXNwb25zZS1jbG9uZS1ibG9iLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA3
LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgbWFyayBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2xp
bmtzL2xpbmtzLWNyZWF0ZWQtYnktYS1hbmQtYXJlYS1lbGVtZW50cy9odG1sYW5jaG9yZWxlbWVu
dF9ub29wZW5lci5odG1sIGFzIGZsYWt5IG9uIFdLMS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZmV0Y2gvcmVzcG9uc2UtY2xvbmUtYmxvYi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL3Jlc3BvbnNlLWNsb25lLWJsb2ItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU3MTJiMmMwOTRhZGY0ZDBlZjU5MTk0MDBjOGUzOTkwYjNjMTJjNjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL3Jlc3BvbnNlLWNs
b25lLWJsb2ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY2FsbGlu
ZyBibG9iKCkgb24gYSBjbG9uZWQgRmV0Y2ggUmVzcG9uc2UgZG9lcyBub3QgZGlzdHVyYiB0aGUg
b3JpZ2luYWwgcmVzcG9uc2UuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IG9yaWdpbmFsVGV4dCA9PSBjbG9uZVRleHQgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZmV0Y2gvcmVzcG9uc2UtY2xvbmUtYmxvYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9mZXRjaC9yZXNwb25zZS1jbG9uZS1ibG9iLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTU5Mzlj
MzU4ZDY3ZGZlYTA2YWM4ZDVjNWI2M2FhOTczYmRkMjdiZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZmV0Y2gvcmVzcG9uc2UtY2xvbmUtYmxvYi5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgY2FsbGluZyBibG9iKCkgb24gYSBjbG9uZWQgRmV0Y2ggUmVz
cG9uc2UgZG9lcyBub3QgZGlzdHVyYiB0aGUgb3JpZ2luYWwgcmVzcG9uc2UuIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBsZXQgb3Jp
Z2luYWxSZXNwb25zZSA9IGF3YWl0IGZldGNoKCIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIik7CisgICAgbGV0IGNsb25lZFJlc3BvbnNlID0gb3JpZ2luYWxSZXNwb25zZS5jbG9uZSgp
OworCisgICAgbGV0IG9yaWdpbmFsQmxvYiA9IGF3YWl0IG9yaWdpbmFsUmVzcG9uc2UuYmxvYigp
OworICAgIGxldCBjbG9uZUJsb2IgPSBhd2FpdCBjbG9uZWRSZXNwb25zZS5ibG9iKCk7CisKKyAg
ICBvcmlnaW5hbFRleHQgPSBhd2FpdCBvcmlnaW5hbEJsb2IudGV4dCgpOworICAgIGNsb25lVGV4
dCA9IGF3YWl0IGNsb25lQmxvYi50ZXh0KCk7CisKKyAgICBzaG91bGRCZVRydWUoIm9yaWdpbmFs
VGV4dCA9PSBjbG9uZVRleHQiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitvbmxvYWQg
PSBydW5UZXN0OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433878</attachid>
            <date>2021-07-20 09:37:24 -0700</date>
            <delta_ts>2021-07-20 10:33:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228096-20210720093723.patch</filename>
            <type>text/plain</type>
            <size>6536</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E4OGM0MTBkZTZlNzdl
NTM2NzJmMzg5OWU2NDNiNzgwZTA1MTNhNy4uNjg5NjA5YjlhMWEyZTJmMGE2NTY3NDI1OTJlNGUz
NGI2MDQzNDFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTA3LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI3ODcw
Mik6IENhbm5vdCBsb2dpbiB0byBhcHBhbG9vc2Etc3RvcmUuY29tL3VzZXJzL3NpZ25faW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODA5NgorICAg
ICAgICA8cmRhcjovLzgwNTk2MzkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgcjI3ODcwMiBhZGRlZCBhbiBvcHRpbWl6YXRpb24gdG8gRmV0Y2hC
b2R5Q29uc3VtZXI6OnRha2VBc0Jsb2IoKSB0byBhdm9pZCBhIGNvcHkgb2YgdGhlIGRhdGEuCisg
ICAgICAgIFdoYXQgSSBkaWRuJ3QgcmVhbGl6ZWQgd2hlbiBJIHdyb3RlIHRoaXMgb3B0aW1pemF0
aW9uIGlzIHRoYXQgRmV0Y2hCb2R5Q29uc3VtZXIgaXMgY29weS1jb25zdHJ1Y3RpYmxlCisgICAg
ICAgIGFuZCBpdHMgY29weSBjb25zdHJ1Y3RvciBnZXRzIGNhbGxlZCB3aGVuIGNhbGxpbmcgRmV0
Y2hSZXNwb25zZS5jbG9uZSgpLiBUaGUgY29weSBjb25zdHJ1Y3RvciBvbmx5CisgICAgICAgIGRv
ZXMgYSBzaGFsbG93LWNvcHkgb2YgaXRzIGludGVybmFsIGJ1ZmZlciBzbyBzZXZlcmFsIEZldGNo
UmVzcG9uc2Ugb2JqZWN0cyBjYW4gZW5kIHVwIHdpdGggdGhlaXIKKyAgICAgICAgRmV0Y2hCb2R5
Q29uc3VtZXIgdXNpbmcgdGhlIHNhbWUgdW5kZXJseWluZyBTaGFyZWRCdWZmZXIgb2JqZWN0LiBX
aGVuIHRoYXQgU2hhcmVkQnVmZmVyIGlzIHNoYXJlZCwKKyAgICAgICAgY2FsbGluZyB0YWtlRGF0
YSgpIG9uIGl0IGlzIHVuYWNjZXB0YWJsZSBhcyBpdCB3aWxsIGRpc3R1cmIgdGhlIGJvZHkgb2Yg
b3RoZXIgRmV0Y2ggcmVzcG9uc2VzLgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3
ZSBub3cgb25seSBjYWxsIFNoYXJlZEJ1ZmZlcjo6dGFrZURhdGEoKSBhbmQgYXZvaWQgdGhlIGNv
cHkgd2hlbiB0aGUKKyAgICAgICAgU2hhcmVkQnVmZmVyIGhhcyBhIFJlZkNvdW50IG9mIDEsIG1l
YW5pbmcgdGhhdCBpcyBpdCBub3QgYWN0dWFsbHkgc2hhcmVkLiBJbiB0aGUgY2FzZXMgd2hlcmUg
aXQKKyAgICAgICAgaXMgc2hhcmVkLCB3ZSBjb3B5IHRoZSBkYXRhLCBsaWtlIHdlIHVzZWQgdG8g
ZG8gYmVmb3JlIHIyNzg3MDIuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9mZXRjaC9yZXNw
b25zZS1jbG9uZS1ibG9iLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
Q29uc3VtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Q29uc3VtZXI6OnRha2VB
c0Jsb2IpOgorCiAyMDIxLTA3LTE5ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUG9ydCA8ZGlhbG9nPiBjbG9zZSBldmVudCB0byBtb2Rlcm4gZXZlbnQgaGFuZGxpbmcg
Y29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0
Zi9WZWN0b3IuaAppbmRleCBjZDE0NzQ0MTFjZjdiMGI4NjUxZDA5YzhhNzViOThiNzU1N2M2MGRh
Li40ODE4N2UxM2ZlZTJhNGFiNzQ2OGVkN2Y2YWU4YTE5NThiOWQ4MjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL05vdEZvdW5kLmg+CisjaW5jbHVkZSA8d3Rm
L1NwYW4uaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Zh
bHVlQ2hlY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yVHJhaXRzLmg+CkBAIC03ODQsNiArNzg1
LDcgQEAgcHVibGljOgogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gQUxXQVlTX0lOTElORSB2
b2lkIGFwcGVuZChjb25zdCBVKiB1LCBzaXplX3Qgc2l6ZSkgeyBhcHBlbmQ8RmFpbHVyZUFjdGlv
bjo6Q3Jhc2g+KHUsIHNpemUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gQUxXQVlTX0lO
TElORSBib29sIHRyeUFwcGVuZChjb25zdCBVKiB1LCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gYXBw
ZW5kPEZhaWx1cmVBY3Rpb246OlJlcG9ydD4odSwgc2l6ZSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBVPiBBTFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kKFNwYW48Y29uc3QgVT4gc3BhbikgeyBh
cHBlbmQoc3Bhbi5kYXRhKCksIHNwYW4uc2l6ZSgpKTsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFUsIHNpemVfdCBvdGhlckNhcGFjaXR5LCB0eXBlbmFtZSBPdGhlck92ZXJmbG93SGFuZGxlciwg
c2l6ZV90IG90aGVyTWluQ2FwYWNpdHksIHR5cGVuYW1lIE90aGVyTWFsbG9jPiB2b2lkIGFwcGVu
ZFZlY3Rvcihjb25zdCBWZWN0b3I8VSwgb3RoZXJDYXBhY2l0eSwgT3RoZXJPdmVyZmxvd0hhbmRs
ZXIsIG90aGVyTWluQ2FwYWNpdHksIE90aGVyTWFsbG9jPiYpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFUsIHNpemVfdCBvdGhlckNhcGFjaXR5LCB0eXBlbmFtZSBPdGhlck92ZXJmbG93SGFuZGxl
ciwgc2l6ZV90IG90aGVyTWluQ2FwYWNpdHksIHR5cGVuYW1lIE90aGVyTWFsbG9jPiB2b2lkIGFw
cGVuZFZlY3RvcihWZWN0b3I8VSwgb3RoZXJDYXBhY2l0eSwgT3RoZXJPdmVyZmxvd0hhbmRsZXIs
IG90aGVyTWluQ2FwYWNpdHksIE90aGVyTWFsbG9jPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAppbmRleCA5YWI1OGMzMjc4
NzRkM2RlYTM3NTg3YmU1OThlODgyZWJhOGVmMzM1Li5jYWU3MTJhZDU0Zjc2NTEwZmU3ZGIzYzlk
MWJkZDU3ZGFmODVhZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMzUxLDcgKzM1MSwxNSBAQCBSZWY8QmxvYj4gRmV0
Y2hCb2R5Q29uc3VtZXI6OnRha2VBc0Jsb2IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICBpZiAoIW1fYnVmZmVyKQogICAgICAgICByZXR1cm4gQmxvYjo6Y3JlYXRlKGNvbnRl
eHQsIFZlY3Rvcjx1aW50OF90PigpLCBCbG9iOjpub3JtYWxpemVkQ29udGVudFR5cGUobV9jb250
ZW50VHlwZSkpOwogCi0gICAgYXV0byBkYXRhID0gc3RkOjpleGNoYW5nZShtX2J1ZmZlciwgbnVs
bHB0ciktPnRha2VEYXRhKCk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CisgICAgYXV0byBi
dWZmZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fYnVmZmVyLCBudWxscHRyKTsKKyAgICBpZiAoYnVmZmVy
LT5oYXNPbmVSZWYoKSkKKyAgICAgICAgZGF0YSA9IGJ1ZmZlci0+dGFrZURhdGEoKTsgLy8gQXZv
aWQgY29weWluZyB0aGUgZGF0YSBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgYnVmZmVyIGlzbid0IHNo
YXJlZC4KKyAgICBlbHNlIHsKKyAgICAgICAgYnVmZmVyLT5mb3JFYWNoU2VnbWVudChbJmRhdGFd
KGF1dG8mIHNwYW4pIHsKKyAgICAgICAgICAgIGRhdGEuYXBwZW5kKHNwYW4pOworICAgICAgICB9
KTsKKyAgICB9CiAgICAgcmV0dXJuIGJsb2JGcm9tRGF0YShjb250ZXh0LCBXVEZNb3ZlKGRhdGEp
LCBtX2NvbnRlbnRUeXBlKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhYTFjNzA3NzJlMTMzZjYzN2M3NWYyNGIz
MTVkZjdlOGMzNzc4OTkuLjRkNWYxYWU1ZDNhNjRkMDIxZjY5ZjY3NTJlNTc0OGY5YThjMmY1ZDYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNzg3MDIpOiBDYW5ub3QgbG9naW4g
dG8gYXBwYWxvb3NhLXN0b3JlLmNvbS91c2Vycy9zaWduX2luCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgwOTYKKyAgICAgICAgPHJkYXI6Ly84MDU5
NjM5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvZmV0Y2gv
cmVzcG9uc2UtY2xvbmUtYmxvYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvZmV0Y2gvcmVzcG9uc2UtY2xvbmUtYmxvYi5odG1sOiBBZGRlZC4KKwogMjAyMS0wNy0x
OSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IG1hcmsgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9saW5r
cy9saW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMvaHRtbGFuY2hvcmVsZW1lbnRf
bm9vcGVuZXIuaHRtbCBhcyBmbGFreSBvbiBXSzEuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2ZldGNoL3Jlc3BvbnNlLWNsb25lLWJsb2ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9yZXNwb25zZS1jbG9uZS1ibG9iLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NzEyYjJjMDk0YWRmNGQwZWY1OTE5NDAwYzhlMzk5MGIzYzEyYzYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9mZXRjaC9yZXNwb25zZS1jbG9u
ZS1ibG9iLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGNhbGxpbmcg
YmxvYigpIG9uIGEgY2xvbmVkIEZldGNoIFJlc3BvbnNlIGRvZXMgbm90IGRpc3R1cmIgdGhlIG9y
aWdpbmFsIHJlc3BvbnNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBv
cmlnaW5hbFRleHQgPT0gY2xvbmVUZXh0IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2ZldGNoL3Jlc3BvbnNlLWNsb25lLWJsb2IuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZmV0Y2gvcmVzcG9uc2UtY2xvbmUtYmxvYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OTM5YzM1
OGQ2N2RmZWEwNmFjOGQ1YzViNjNhYTk3M2JkZDI3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2ZldGNoL3Jlc3BvbnNlLWNsb25lLWJsb2IuaHRtbApAQCAtMCww
ICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGNhbGxpbmcgYmxvYigpIG9uIGEgY2xvbmVkIEZldGNoIFJlc3Bv
bnNlIGRvZXMgbm90IGRpc3R1cmIgdGhlIG9yaWdpbmFsIHJlc3BvbnNlLiIpOworanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgbGV0IG9yaWdp
bmFsUmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgiL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyIpOworICAgIGxldCBjbG9uZWRSZXNwb25zZSA9IG9yaWdpbmFsUmVzcG9uc2UuY2xvbmUoKTsK
KworICAgIGxldCBvcmlnaW5hbEJsb2IgPSBhd2FpdCBvcmlnaW5hbFJlc3BvbnNlLmJsb2IoKTsK
KyAgICBsZXQgY2xvbmVCbG9iID0gYXdhaXQgY2xvbmVkUmVzcG9uc2UuYmxvYigpOworCisgICAg
b3JpZ2luYWxUZXh0ID0gYXdhaXQgb3JpZ2luYWxCbG9iLnRleHQoKTsKKyAgICBjbG9uZVRleHQg
PSBhd2FpdCBjbG9uZUJsb2IudGV4dCgpOworCisgICAgc2hvdWxkQmVUcnVlKCJvcmlnaW5hbFRl
eHQgPT0gY2xvbmVUZXh0Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworb25sb2FkID0g
cnVuVGVzdDsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>