<?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>226476</bug_id>
          
          <creation_ts>2021-05-31 17:30:43 -0700</creation_ts>
          <short_desc>Fix thread safety issues in MediaStreamAudioSourceNode</short_desc>
          <delta_ts>2021-06-01 08:36:16 -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>Web Audio</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765475</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-31 17:30:43 -0700</bug_when>
    <thetext>Adopt thread safety analysis annotations in MediaStreamAudioSourceNode and fix bugs found by clang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765476</commentid>
    <comment_count>1</comment_count>
      <attachid>430219</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-31 17:34:00 -0700</bug_when>
    <thetext>Created attachment 430219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765573</commentid>
    <comment_count>2</comment_count>
      <attachid>430219</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 04:57:49 -0700</bug_when>
    <thetext>Comment on attachment 430219
Patch

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

&gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
&gt; +    if (sourceSampleRate == sampleRate())

We could keep a single sampleRate call as a minor optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765603</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-01 07:37:00 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #2)
&gt; Comment on attachment 430219 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430219&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
&gt; &gt; +    if (sourceSampleRate == sampleRate())
&gt; 
&gt; We could keep a single sampleRate call as a minor optimization.

SampleRate() is an in-line function so it did not seem worth it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765605</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 07:44:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; (In reply to youenn fablet from comment #2)
&gt; &gt; Comment on attachment 430219 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=430219&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
&gt; &gt; &gt; +    if (sourceSampleRate == sampleRate())
&gt; &gt; 
&gt; &gt; We could keep a single sampleRate call as a minor optimization.
&gt; 
&gt; SampleRate() is an in-line function so it did not seem worth it?

Isn&apos;t it a virtual method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765606</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-01 07:46:11 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; (In reply to youenn fablet from comment #2)
&gt; &gt; &gt; Comment on attachment 430219 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=430219&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
&gt; &gt; &gt; &gt; +    if (sourceSampleRate == sampleRate())
&gt; &gt; &gt; 
&gt; &gt; &gt; We could keep a single sampleRate call as a minor optimization.
&gt; &gt; 
&gt; &gt; SampleRate() is an in-line function so it did not seem worth it?
&gt; 
&gt; Isn&apos;t it a virtual method?

Oh, it is. and it isn&apos;t inline either. I was confused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765608</commentid>
    <comment_count>6</comment_count>
      <attachid>430261</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-01 07:48:21 -0700</bug_when>
    <thetext>Created attachment 430261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765616</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-01 08:08:14 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; (In reply to youenn fablet from comment #4)
&gt; &gt; (In reply to Chris Dumez from comment #3)
&gt; &gt; &gt; (In reply to youenn fablet from comment #2)
&gt; &gt; &gt; &gt; Comment on attachment 430219 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=430219&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.cpp:109
&gt; &gt; &gt; &gt; &gt; +    if (sourceSampleRate == sampleRate())
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; We could keep a single sampleRate call as a minor optimization.
&gt; &gt; &gt; 
&gt; &gt; &gt; SampleRate() is an in-line function so it did not seem worth it?
&gt; &gt; 
&gt; &gt; Isn&apos;t it a virtual method?
&gt; 
&gt; Oh, it is. and it isn&apos;t inline either. I was confused.

Fixed before landing, thanks for catching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765623</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-01 08:35:01 -0700</bug_when>
    <thetext>Committed r278309 (238346@main): &lt;https://commits.webkit.org/238346@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430261.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765624</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-01 08:36:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/78715855&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430219</attachid>
            <date>2021-05-31 17:34:00 -0700</date>
            <delta_ts>2021-06-01 07:48:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226476-20210531173359.patch</filename>
            <type>text/plain</type>
            <size>4971</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU3YmYwNTVmYzkxMjdm
NDA5MTZiMDJjMjY5YzhhODBkODAyZWQwYy4uZGZmOWExMjE2MGE1MDMzZDljMzE5ODBmZjkzMGQ5
MmE5NGI3OTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA1LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZCBzYWZldHkg
aXNzdWVzIGluIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0NzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCB0aHJlYWQgc2FmZXR5IGFuYWx5c2lz
IGFubm90YXRpb25zIGluIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlIGFuZCBmaXgKKyAgICAg
ICAgYnVncyBmb3VuZCBieSBjbGFuZy4gSW4gcGFydGljdWxhciwgdGhlIGZvbGxvd2luZyBpc3N1
ZXMgd2VyZSBmaXhlZDoKKyAgICAgICAgLSBzZXRGb3JtYXQoKSBjb3VsZCBtb2RpZnkgbV9zb3Vy
Y2VOdW1iZXJPZkNoYW5uZWxzIGJlZm9yZSBsb2NraW5nIG9uIHRoZSBtYWluCisgICAgICAgICAg
dGhyZWFkLgorICAgICAgICAtIHByb2Nlc3MoKSB3YXMgYWNjZXNzaW5nIG1fc291cmNlTnVtYmVy
T2ZDaGFubmVscyAvIG1fc291cmNlU2FtcGxlUmF0ZQorICAgICAgICAgIG9uIHRoZSByZW5kZXJp
bmcgdGhyZWFkICpiZWZvcmUqIGxvY2tpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaDoKKwogMjAyMS0wNS0zMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aHJlYWQgc2FmZXR5IGlz
c3VlcyBpbiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5jcHAKaW5kZXggNWRmMTZiZGFiNWNiMjgzMjk3NjkwMzAzMjk2NTcxMmUyYTM4MGI4ZC4uNjc3
ZDI2NGE2OWRiOWM5OWIxNzcwY2NjMjAyM2E2NmNlMDNmN2VjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5jcHAKQEAgLTg5LDcgKzg5LDkgQEAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6
On5NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSgpCiAKIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291cmNl
U2FtcGxlUmF0ZSkKIHsKLSAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0ZSgp
OworICAgIC8vIFN5bmNocm9uaXplIHdpdGggcHJvY2VzcygpLgorICAgIExvY2tlciBsb2NrZXIg
eyBtX3Byb2Nlc3NMb2NrIH07CisKICAgICBpZiAobnVtYmVyT2ZDaGFubmVscyA9PSBtX3NvdXJj
ZU51bWJlck9mQ2hhbm5lbHMgJiYgc291cmNlU2FtcGxlUmF0ZSA9PSBtX3NvdXJjZVNhbXBsZVJh
dGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTAxLDE2ICsxMDMsMTMgQEAgdm9pZCBNZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBm
bG9hdCBzb3VyY2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFN5bmNocm9uaXpl
IHdpdGggcHJvY2VzcygpLgotICAgIExvY2tlciBsb2NrZXIgeyBtX3Byb2Nlc3NMb2NrIH07Ci0K
ICAgICBtX3NvdXJjZU51bWJlck9mQ2hhbm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOwogICAgIG1f
c291cmNlU2FtcGxlUmF0ZSA9IHNvdXJjZVNhbXBsZVJhdGU7CiAKLSAgICBpZiAoc291cmNlU2Ft
cGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQorICAgIGlmIChzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBs
ZVJhdGUoKSkKICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwogICAg
IGVsc2UgewotICAgICAgICBkb3VibGUgc2NhbGVGYWN0b3IgPSBzb3VyY2VTYW1wbGVSYXRlIC8g
c2FtcGxlUmF0ZTsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0gc291cmNlU2FtcGxlUmF0
ZSAvIHNhbXBsZVJhdGUoKTsKICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBtYWtl
VW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9mQ2hhbm5l
bHMsIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSwgc3RkOjpiaW5kKCZNZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZTo6cHJvdmlkZUlucHV0LCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVy
czo6XzEsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMikpOwogICAgIH0KIApAQCAtMTM0LDExICsxMzMs
NiBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBudW1i
ZXJPZkZyYW1lcykKIHsKICAgICBBdWRpb0J1cyogb3V0cHV0QnVzID0gb3V0cHV0KDApLT5idXMo
KTsKIAotICAgIGlmICghbWVkaWFTdHJlYW0oKSB8fCAhbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
IHx8ICFtX3NvdXJjZVNhbXBsZVJhdGUpIHsKLSAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNv
bnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFp
bCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhl
IG1pZGRsZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2Ug
aW4gdGhpcyBjYXNlLgpAQCAtMTQ4LDcgKzE0Miw4IEBAIHZvaWQgTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsK
LSAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZD
aGFubmVscygpKSB7CisKKyAgICBpZiAoIW1fc291cmNlTnVtYmVyT2ZDaGFubmVscyB8fCAhbV9z
b3VyY2VTYW1wbGVSYXRlIHx8IG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyAhPSBvdXRwdXRCdXMt
Pm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaAppbmRleCAxYjI5ZWU4NjYx
Njg1NWRhMTQ2ODBjZTRlZDIxNzk3OWZmNmNmN2Y1Li44MzY3MjI1ZmRlN2M0ZGNiYjNjMTZkMGIz
Mzg2MzhmYzg2ZGZlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oCkBAIC00Niw3ICs0Niw3
IEBAIHB1YmxpYzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZSgpOwogCi0gICAg
TWVkaWFTdHJlYW0qIG1lZGlhU3RyZWFtKCkgeyByZXR1cm4gJm1fbWVkaWFTdHJlYW0uZ2V0KCk7
IH0KKyAgICBNZWRpYVN0cmVhbSYgbWVkaWFTdHJlYW0oKSB7IHJldHVybiBtX21lZGlhU3RyZWFt
OyB9CiAKIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUoQmFzZUF1ZGlv
Q29udGV4dCYsIE1lZGlhU3RyZWFtJiwgUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlkZXI+JiYpOwpA
QCAtNjcsMTIgKzY3LDEyIEBAIHByaXZhdGU6CiAKICAgICBSZWY8TWVkaWFTdHJlYW0+IG1fbWVk
aWFTdHJlYW07CiAgICAgUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlkZXI+IG1fcHJvdmlkZXI7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9tdWx0aUNoYW5uZWxS
ZXNhbXBsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4gbV9t
dWx0aUNoYW5uZWxSZXNhbXBsZXIgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKTsK
IAogICAgIExvY2sgbV9wcm9jZXNzTG9jazsKIAotICAgIHVuc2lnbmVkIG1fc291cmNlTnVtYmVy
T2ZDaGFubmVscyB7IDAgfTsKLSAgICBkb3VibGUgbV9zb3VyY2VTYW1wbGVSYXRlIHsgMCB9Owor
ICAgIHVuc2lnbmVkIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fcHJvY2Vzc0xvY2spIHsgMCB9OworICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBsZVJhdGUgV1RG
X0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKSB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430261</attachid>
            <date>2021-06-01 07:48:21 -0700</date>
            <delta_ts>2021-06-01 08:35:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226476-20210601074820.patch</filename>
            <type>text/plain</type>
            <size>4587</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODliYjg1MGY5ZDZlYzg0
YTNlYmUyMWY2ZGUwOTA5NDQ2YzQyOWE5Mi4uODhiNThhZGQ4ODZlOGVhMzdlYzc2OGI0MDExM2Y3
ZGRhZGE3NWVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRocmVhZCBzYWZldHkg
aXNzdWVzIGluIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0NzYKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkb3B0IHRocmVhZCBzYWZldHkgYW5hbHlzaXMg
YW5ub3RhdGlvbnMgaW4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUgYW5kIGZpeAorICAgICAg
ICBidWdzIGZvdW5kIGJ5IGNsYW5nLiBJbiBwYXJ0aWN1bGFyLCB0aGUgZm9sbG93aW5nIGlzc3Vl
cyB3ZXJlIGZpeGVkOgorICAgICAgICAtIHNldEZvcm1hdCgpIGNvdWxkIG1vZGlmeSBtX3NvdXJj
ZU51bWJlck9mQ2hhbm5lbHMgYmVmb3JlIGxvY2tpbmcgb24gdGhlIG1haW4KKyAgICAgICAgICB0
aHJlYWQuCisgICAgICAgIC0gcHJvY2VzcygpIHdhcyBhY2Nlc3NpbmcgbV9zb3VyY2VOdW1iZXJP
ZkNoYW5uZWxzIC8gbV9zb3VyY2VTYW1wbGVSYXRlCisgICAgICAgICAgb24gdGhlIHJlbmRlcmlu
ZyB0aHJlYWQgKmJlZm9yZSogbG9ja2luZy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oOgorCiAyMDIxLTA2LTAxICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgQ29tcGxleExpbmVM
YXlvdXQgdG8gTGVnYWN5TGluZUxheW91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcAppbmRl
eCA1ZGYxNmJkYWI1Y2IyODMyOTc2OTAzMDMyOTY1NzEyZTJhMzgwYjhkLi4yZmJhM2UzZTQ1Y2M0
NTAyZjc4YzMxMGZlOTA5NjI1NzgzMmI1ZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNw
cApAQCAtODksNyArODksOSBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6fk1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlKCkKIAogdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6
c2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzb3VyY2VTYW1wbGVSYXRl
KQogewotICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0aGlzLT5zYW1wbGVSYXRlKCk7CisgICAgLy8g
U3luY2hyb25pemUgd2l0aCBwcm9jZXNzKCkuCisgICAgTG9ja2VyIGxvY2tlciB7IG1fcHJvY2Vz
c0xvY2sgfTsKKwogICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZD
aGFubmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IG1fc291cmNlU2FtcGxlUmF0ZSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xMDEsMTIgKzEwMywxMCBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9T
b3VyY2VOb2RlOjpzZXRGb3JtYXQoc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNvdXJj
ZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gU3luY2hyb25pemUgd2l0aCBwcm9j
ZXNzKCkuCi0gICAgTG9ja2VyIGxvY2tlciB7IG1fcHJvY2Vzc0xvY2sgfTsKLQogICAgIG1fc291
cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7CiAgICAgbV9zb3VyY2VTYW1w
bGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKIAorICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0aGlz
LT5zYW1wbGVSYXRlKCk7CiAgICAgaWYgKHNvdXJjZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSkK
ICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwogICAgIGVsc2UgewpA
QCAtMTM0LDExICsxMzQsNiBAQCB2b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9j
ZXNzKHNpemVfdCBudW1iZXJPZkZyYW1lcykKIHsKICAgICBBdWRpb0J1cyogb3V0cHV0QnVzID0g
b3V0cHV0KDApLT5idXMoKTsKIAotICAgIGlmICghbWVkaWFTdHJlYW0oKSB8fCAhbV9zb3VyY2VO
dW1iZXJPZkNoYW5uZWxzIHx8ICFtX3NvdXJjZVNhbXBsZVJhdGUpIHsKLSAgICAgICAgb3V0cHV0
QnVzLT56ZXJvKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBVc2UgdHJ5TG9j
aygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAg
ICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFt
IG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8vIGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ug
b3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgpAQCAtMTQ4LDcgKzE0Myw4IEBAIHZvaWQgTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1f
cHJvY2Vzc0xvY2sgfTsKLSAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzICE9IG91dHB1
dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKSB7CisKKyAgICBpZiAoIW1fc291cmNlTnVtYmVyT2ZD
aGFubmVscyB8fCAhbV9zb3VyY2VTYW1wbGVSYXRlIHx8IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyAhPSBvdXRwdXRCdXMtPm51bWJlck9mQ2hhbm5lbHMoKSkgewogICAgICAgICBvdXRwdXRCdXMt
Pnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaApp
bmRleCAxYjI5ZWU4NjYxNjg1NWRhMTQ2ODBjZTRlZDIxNzk3OWZmNmNmN2Y1Li44MzY3MjI1ZmRl
N2M0ZGNiYjNjMTZkMGIzMzg2MzhmYzg2ZGZlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5o
CkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIAogICAgIH5NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZSgpOwogCi0gICAgTWVkaWFTdHJlYW0qIG1lZGlhU3RyZWFtKCkgeyByZXR1cm4gJm1fbWVk
aWFTdHJlYW0uZ2V0KCk7IH0KKyAgICBNZWRpYVN0cmVhbSYgbWVkaWFTdHJlYW0oKSB7IHJldHVy
biBtX21lZGlhU3RyZWFtOyB9CiAKIHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGUoQmFzZUF1ZGlvQ29udGV4dCYsIE1lZGlhU3RyZWFtJiwgUmVmPFdlYkF1ZGlvU291cmNl
UHJvdmlkZXI+JiYpOwpAQCAtNjcsMTIgKzY3LDEyIEBAIHByaXZhdGU6CiAKICAgICBSZWY8TWVk
aWFTdHJlYW0+IG1fbWVkaWFTdHJlYW07CiAgICAgUmVmPFdlYkF1ZGlvU291cmNlUHJvdmlkZXI+
IG1fcHJvdmlkZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4g
bV9tdWx0aUNoYW5uZWxSZXNhbXBsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE11bHRpQ2hhbm5l
bFJlc2FtcGxlcj4gbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgV1RGX0dVQVJERURfQllfTE9DSyht
X3Byb2Nlc3NMb2NrKTsKIAogICAgIExvY2sgbV9wcm9jZXNzTG9jazsKIAotICAgIHVuc2lnbmVk
IG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyB7IDAgfTsKLSAgICBkb3VibGUgbV9zb3VyY2VTYW1w
bGVSYXRlIHsgMCB9OworICAgIHVuc2lnbmVkIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fcHJvY2Vzc0xvY2spIHsgMCB9OworICAgIGRvdWJsZSBtX3NvdXJj
ZVNhbXBsZVJhdGUgV1RGX0dVQVJERURfQllfTE9DSyhtX3Byb2Nlc3NMb2NrKSB7IDAgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>