<?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>223230</bug_id>
          
          <creation_ts>2021-03-15 18:05:14 -0700</creation_ts>
          <short_desc>Avoid heap allocation under AudioSummingJunction::updateRenderingState()</short_desc>
          <delta_ts>2021-03-16 17:53:15 -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>
          
          <blocked>223226</blocked>
          <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>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1739775</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 18:05:14 -0700</bug_when>
    <thetext>Avoid heap allocation under AudioSummingJunction::updateRenderingState(), since this runs on the audio thread:

Thread 9 Crashed:: offline renderer
0   com.apple.JavaScriptCore            0x00000003d7c3ff4e WTFCrash + 14 (Assertions.cpp:295)
1   com.apple.JavaScriptCore            0x00000003d93dc99b WTFCrashWithInfo(int, char const*, char const*, int) + 27 (Assertions.h:671)
2   com.apple.JavaScriptCore            0x00000003d7c7d607 WTF::fastMalloc(unsigned long) + 215 (FastMalloc.cpp:496)
3   com.apple.WebCore                   0x00000003b88bce75 WTF::FastMalloc::malloc(unsigned long) + 21 (FastMalloc.h:246)
4   com.apple.WebCore                   0x00000003babdcae2 bool WTF::VectorBufferBase&lt;WebCore::AudioNodeOutput*, WTF::FastMalloc&gt;::allocateBuffer&lt;(WTF::FailureAction)0&gt;(unsigned long) + 178 (Vector.h:301)
5   com.apple.WebCore                   0x00000003babdc931 bool WTF::Vector&lt;WebCore::AudioNodeOutput*, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::reserveCapacity&lt;(WTF::FailureAction)0&gt;(unsigned long) + 113 (Vector.h:1195)
6   com.apple.WebCore                   0x00000003babdc860 bool WTF::Vector&lt;WebCore::AudioNodeOutput*, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::expandCapacity&lt;(WTF::FailureAction)0&gt;(unsigned long) + 112 (Vector.h:1056)
7   com.apple.WebCore                   0x00000003babca944 WTF::Vector&lt;WebCore::AudioNodeOutput*, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;::resize(unsigned long) + 148 (Vector.h:1102)
8   com.apple.WebCore                   0x00000003babca798 WebCore::AudioSummingJunction::updateRenderingState() + 280 (AudioSummingJunction.cpp:81)
9   com.apple.WebCore                   0x00000003babf5b97 WebCore::BaseAudioContext::handleDirtyAudioSummingJunctions() + 247 (BaseAudioContext.cpp:852)
10  com.apple.WebCore                   0x00000003babf5a47 WebCore::BaseAudioContext::handlePreRenderTasks(WebCore::AudioIOPosition const&amp;) + 151 (BaseAudioContext.cpp:701)
11  com.apple.WebCore                   0x00000003bab8ddd3 WebCore::AudioDestinationNode::render(WebCore::AudioBus*, WebCore::AudioBus*, unsigned long, WebCore::AudioIOPosition const&amp;) + 307 (AudioDestinationNode.cpp:81)
12  com.apple.WebCore                   0x00000003bac5483d WebCore::OfflineAudioDestinationNode::offlineRender() + 877 (OfflineAudioDestinationNode.cpp:164)
13  com.apple.WebCore                   0x00000003bac74939 WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_2::operator()() + 41 (OfflineAudioDestinationNode.cpp:104)
14  com.apple.WebCore                   0x00000003bac7630e WTF::Detail::CallableWrapper&lt;WebCore::OfflineAudioDestinationNode::startRendering(WTF::CompletionHandler&lt;void (WTF::Optional&lt;WebCore::Exception&gt;&amp;&amp;)&gt;&amp;&amp;)::$_2, void&gt;::call() + 30 (Function.h:52)
15  com.apple.JavaScriptCore            0x00000003d7c68552 WTF::Function&lt;void ()&gt;::operator()() const + 130 (Function.h:83)
16  com.apple.JavaScriptCore            0x00000003d7d1cba8 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 424 (Threading.cpp:181)
17  com.apple.JavaScriptCore            0x00000003d7d28d48 WTF::wtfThreadEntryPoint(void*) + 24 (ThreadingPOSIX.cpp:241)
18  libsystem_pthread.dylib             0x00007fff20686954 _pthread_start + 224
19  libsystem_pthread.dylib             0x00007fff206824a7 thread_start + 15</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739777</commentid>
    <comment_count>1</comment_count>
      <attachid>423275</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 18:08:40 -0700</bug_when>
    <thetext>Created attachment 423275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739794</commentid>
    <comment_count>2</comment_count>
      <attachid>423280</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 19:03:40 -0700</bug_when>
    <thetext>Created attachment 423280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740202</commentid>
    <comment_count>3</comment_count>
      <attachid>423280</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-16 14:24:12 -0700</bug_when>
    <thetext>Comment on attachment 423280
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioSummingJunction.h:87
&gt; +    Optional&lt;Vector&lt;AudioNodeOutput*&gt;&gt; m_pendingRenderingOutputs;

I don’t see why we have to use Optional here. If we used an empty vector instead, and replaced the checks for null with checks for an empty vector, I think all the code above would still be correct. We could then remove the special case for null/empty from updateRenderingState.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740311</commentid>
    <comment_count>4</comment_count>
      <attachid>423417</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 16:59:22 -0700</bug_when>
    <thetext>Created attachment 423417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740325</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-16 17:52:15 -0700</bug_when>
    <thetext>Committed r274541: &lt;https://commits.webkit.org/r274541&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423417.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740326</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-16 17:53:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/75503829&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423275</attachid>
            <date>2021-03-15 18:08:40 -0700</date>
            <delta_ts>2021-03-15 19:03:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223230-20210315180840.patch</filename>
            <type>text/plain</type>
            <size>3528</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljMjY1Yzk1ZTE5ZTM4
NzhhMDkwODFlZmQwOWJjZmZjMDJlZTRiMS4uODBkMzgyYjdjODU2M2JiYzNiMzgxMGI2ZDFjYThl
MDAyN2ViYzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAzLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgaGVhcCBhbGxvY2F0
aW9uIHVuZGVyIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBoZWFw
IGFsbG9jYXRpb24gdW5kZXIgQXVkaW9TdW1taW5nSnVuY3Rpb246OnVwZGF0ZVJlbmRlcmluZ1N0
YXRlKCkKKyAgICAgICAgc2luY2UgdGhpcyBydW5zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246OnJlbW92ZU91dHB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6dXBkYXRlUmVuZGVyaW5nU3RhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaDoKKwogMjAyMS0w
My0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlclN0
eWxlOjpnZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3Igc2hvdWxkIG5ldmVyIHByb2R1Y2UgYSByZWN0
IHdpdGggbmVnYXRpdmUgd2lkdGgvaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCmluZGV4IDM3OGEyMTU4
MjM0MTA3ZTU0NTY1OTQ3Y2RkYmU0YTdiMzE5ZmE3MTIuLjFlYjcwMjY5YzFhYzBkY2UyMTI1Y2Yw
M2NjZThiNjdhZTFmMzZhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCkBAIC01OSw2ICs1OSw5IEBAIGJv
b2wgQXVkaW9TdW1taW5nSnVuY3Rpb246OmFkZE91dHB1dChBdWRpb05vZGVPdXRwdXQmIG91dHB1
dCkKICAgICBBU1NFUlQoY29udGV4dCgpLmlzR3JhcGhPd25lcigpKTsKICAgICBpZiAoIW1fb3V0
cHV0cy5hZGQoJm91dHB1dCkuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cykKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVy
aW5nT3V0cHV0cyA9IFZlY3RvcjxBdWRpb05vZGVPdXRwdXQqPiB7IH07CisgICAgbV9wZW5kaW5n
UmVuZGVyaW5nT3V0cHV0cy0+YXBwZW5kKCZvdXRwdXQpOwogICAgIG1hcmtSZW5kZXJpbmdTdGF0
ZUFzRGlydHkoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTY4LDYgKzcxLDcgQEAgYm9vbCBB
dWRpb1N1bW1pbmdKdW5jdGlvbjo6cmVtb3ZlT3V0cHV0KEF1ZGlvTm9kZU91dHB1dCYgb3V0cHV0
KQogICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOwogICAgIGlmICghbV9vdXRw
dXRzLnJlbW92ZSgmb3V0cHV0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIG1fcGVuZGlu
Z1JlbmRlcmluZ091dHB1dHMtPnJlbW92ZUZpcnN0KCZvdXRwdXQpOwogICAgIG1hcmtSZW5kZXJp
bmdTdGF0ZUFzRGlydHkoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTc4LDExICs4MiwxMiBA
QCB2b2lkIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCiAKICAg
ICBpZiAobV9yZW5kZXJpbmdTdGF0ZU5lZWRVcGRhdGluZyAmJiBjYW5VcGRhdGVTdGF0ZSgpKSB7
CiAgICAgICAgIC8vIENvcHkgZnJvbSBtX291dHB1dHMgdG8gbV9yZW5kZXJpbmdPdXRwdXRzLgot
ICAgICAgICBtX3JlbmRlcmluZ091dHB1dHMucmVzaXplKG1fb3V0cHV0cy5zaXplKCkpOwotICAg
ICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAgICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX291dHB1
dHMpIHsKLSAgICAgICAgICAgIG1fcmVuZGVyaW5nT3V0cHV0c1tpKytdID0gb3V0cHV0OwotICAg
ICAgICAgICAgb3V0cHV0LT51cGRhdGVSZW5kZXJpbmdTdGF0ZSgpOworICAgICAgICBpZiAoIW1f
cGVuZGluZ1JlbmRlcmluZ091dHB1dHMpCisgICAgICAgICAgICBtX3JlbmRlcmluZ091dHB1dHMu
Y2xlYXIoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3JlbmRlcmluZ091dHB1dHMg
PSAqc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzLCBXVEY6Om51bGxvcHQp
OworICAgICAgICAgICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX3JlbmRlcmluZ091dHB1dHMpCisg
ICAgICAgICAgICAgICAgb3V0cHV0LT51cGRhdGVSZW5kZXJpbmdTdGF0ZSgpOwogICAgICAgICB9
CiAKICAgICAgICAgZGlkVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmgKaW5kZXggYTUxMjg2YWNiYmZhOGE5
YTc1NGVkMTc5YTIyNzMzOGYxMDE2NTI3NS4uY2IzODYyYjE1NWFkMjE1MjRmZGFiMjRkYjFiNWMz
NDcwNzQ5NGM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1N1bW1pbmdKdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaApAQCAtODQsNiArODQsNyBAQCBwcml2YXRlOgogICAg
IC8vIG1fb3V0cHV0cyBjb250YWlucyB0aGUgQXVkaW9Ob2RlT3V0cHV0cyByZXByZXNlbnRpbmcg
Y3VycmVudCBjb25uZWN0aW9ucyB3aGljaCBhcmUgbm90IGRpc2FibGVkLgogICAgIC8vIFRoZSBy
ZW5kZXJpbmcgY29kZSBzaG91bGQgbmV2ZXIgdXNlIHRoaXMgZGlyZWN0bHksIGJ1dCBpbnN0ZWFk
IHVzZXMgbV9yZW5kZXJpbmdPdXRwdXRzLgogICAgIEhhc2hTZXQ8QXVkaW9Ob2RlT3V0cHV0Kj4g
bV9vdXRwdXRzOworICAgIE9wdGlvbmFsPFZlY3RvcjxBdWRpb05vZGVPdXRwdXQqPj4gbV9wZW5k
aW5nUmVuZGVyaW5nT3V0cHV0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423280</attachid>
            <date>2021-03-15 19:03:40 -0700</date>
            <delta_ts>2021-03-16 16:59:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223230-20210315190340.patch</filename>
            <type>text/plain</type>
            <size>3660</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljMjY1Yzk1ZTE5ZTM4
NzhhMDkwODFlZmQwOWJjZmZjMDJlZTRiMS4uODBkMzgyYjdjODU2M2JiYzNiMzgxMGI2ZDFjYThl
MDAyN2ViYzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAzLTE1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgaGVhcCBhbGxvY2F0
aW9uIHVuZGVyIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdm9pZCBoZWFw
IGFsbG9jYXRpb24gdW5kZXIgQXVkaW9TdW1taW5nSnVuY3Rpb246OnVwZGF0ZVJlbmRlcmluZ1N0
YXRlKCkKKyAgICAgICAgc2luY2UgdGhpcyBydW5zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246OnJlbW92ZU91dHB1dCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6dXBkYXRlUmVuZGVyaW5nU3RhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaDoKKwogMjAyMS0w
My0xNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmRlclN0
eWxlOjpnZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3Igc2hvdWxkIG5ldmVyIHByb2R1Y2UgYSByZWN0
IHdpdGggbmVnYXRpdmUgd2lkdGgvaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCmluZGV4IDM3OGEyMTU4
MjM0MTA3ZTU0NTY1OTQ3Y2RkYmU0YTdiMzE5ZmE3MTIuLjhlZTA4YTBlNzhmODY5NDFkNjI1ODE2
ZjlkMjQ5NjJlOTQwODVkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCkBAIC01OSw2ICs1OSwxMiBAQCBi
b29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQoQXVkaW9Ob2RlT3V0cHV0JiBvdXRw
dXQpCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CiAgICAgaWYgKCFtX291
dHB1dHMuYWRkKCZvdXRwdXQpLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cykKKyAgICAgICAgbV9wZW5kaW5nUmVu
ZGVyaW5nT3V0cHV0cyA9IGNvcHlUb1ZlY3RvcihtX291dHB1dHMpOworICAgIGVsc2UKKyAgICAg
ICAgbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cy0+YXBwZW5kKCZvdXRwdXQpOworCiAgICAgbWFy
a1JlbmRlcmluZ1N0YXRlQXNEaXJ0eSgpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNjgsNiAr
NzQsMTIgQEAgYm9vbCBBdWRpb1N1bW1pbmdKdW5jdGlvbjo6cmVtb3ZlT3V0cHV0KEF1ZGlvTm9k
ZU91dHB1dCYgb3V0cHV0KQogICAgIEFTU0VSVChjb250ZXh0KCkuaXNHcmFwaE93bmVyKCkpOwog
ICAgIGlmICghbV9vdXRwdXRzLnJlbW92ZSgmb3V0cHV0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzKQorICAgICAgICBtX3BlbmRp
bmdSZW5kZXJpbmdPdXRwdXRzID0gY29weVRvVmVjdG9yKG1fb3V0cHV0cyk7CisgICAgZWxzZQor
ICAgICAgICBtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzLT5yZW1vdmVGaXJzdCgmb3V0cHV0KTsK
KwogICAgIG1hcmtSZW5kZXJpbmdTdGF0ZUFzRGlydHkoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTc4LDExICs5MCwxMiBAQCB2b2lkIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5k
ZXJpbmdTdGF0ZSgpCiAKICAgICBpZiAobV9yZW5kZXJpbmdTdGF0ZU5lZWRVcGRhdGluZyAmJiBj
YW5VcGRhdGVTdGF0ZSgpKSB7CiAgICAgICAgIC8vIENvcHkgZnJvbSBtX291dHB1dHMgdG8gbV9y
ZW5kZXJpbmdPdXRwdXRzLgotICAgICAgICBtX3JlbmRlcmluZ091dHB1dHMucmVzaXplKG1fb3V0
cHV0cy5zaXplKCkpOwotICAgICAgICB1bnNpZ25lZCBpID0gMDsKLSAgICAgICAgZm9yIChhdXRv
JiBvdXRwdXQgOiBtX291dHB1dHMpIHsKLSAgICAgICAgICAgIG1fcmVuZGVyaW5nT3V0cHV0c1tp
KytdID0gb3V0cHV0OwotICAgICAgICAgICAgb3V0cHV0LT51cGRhdGVSZW5kZXJpbmdTdGF0ZSgp
OworICAgICAgICBpZiAoIW1fcGVuZGluZ1JlbmRlcmluZ091dHB1dHMpCisgICAgICAgICAgICBt
X3JlbmRlcmluZ091dHB1dHMuY2xlYXIoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBt
X3JlbmRlcmluZ091dHB1dHMgPSAqc3RkOjpleGNoYW5nZShtX3BlbmRpbmdSZW5kZXJpbmdPdXRw
dXRzLCBXVEY6Om51bGxvcHQpOworICAgICAgICAgICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX3Jl
bmRlcmluZ091dHB1dHMpCisgICAgICAgICAgICAgICAgb3V0cHV0LT51cGRhdGVSZW5kZXJpbmdT
dGF0ZSgpOwogICAgICAgICB9CiAKICAgICAgICAgZGlkVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmgKaW5k
ZXggYTUxMjg2YWNiYmZhOGE5YTc1NGVkMTc5YTIyNzMzOGYxMDE2NTI3NS4uY2IzODYyYjE1NWFk
MjE1MjRmZGFiMjRkYjFiNWMzNDcwNzQ5NGM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1N1bW1pbmdKdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaApAQCAtODQsNiArODQs
NyBAQCBwcml2YXRlOgogICAgIC8vIG1fb3V0cHV0cyBjb250YWlucyB0aGUgQXVkaW9Ob2RlT3V0
cHV0cyByZXByZXNlbnRpbmcgY3VycmVudCBjb25uZWN0aW9ucyB3aGljaCBhcmUgbm90IGRpc2Fi
bGVkLgogICAgIC8vIFRoZSByZW5kZXJpbmcgY29kZSBzaG91bGQgbmV2ZXIgdXNlIHRoaXMgZGly
ZWN0bHksIGJ1dCBpbnN0ZWFkIHVzZXMgbV9yZW5kZXJpbmdPdXRwdXRzLgogICAgIEhhc2hTZXQ8
QXVkaW9Ob2RlT3V0cHV0Kj4gbV9vdXRwdXRzOworICAgIE9wdGlvbmFsPFZlY3RvcjxBdWRpb05v
ZGVPdXRwdXQqPj4gbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0czsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423417</attachid>
            <date>2021-03-16 16:59:22 -0700</date>
            <delta_ts>2021-03-16 17:52:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223230-20210316165921.patch</filename>
            <type>text/plain</type>
            <size>3511</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZiYThlNTU2OTlmYTQ4
ZmI5NTI3MmI1N2VhZDYxYjRlNjYxYzlmYi4uNGU2Y2FhNTcyMjJkMWIzOTE2OWNmYTcxOGEzYTY0
YzU4NmEyOTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAzLTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgaGVhcCBhbGxvY2F0
aW9uIHVuZGVyIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMyMzAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBBdm9pZCBoZWFwIGFs
bG9jYXRpb24gdW5kZXIgQXVkaW9TdW1taW5nSnVuY3Rpb246OnVwZGF0ZVJlbmRlcmluZ1N0YXRl
KCkKKyAgICAgICAgc2luY2UgdGhpcyBydW5zIG9uIHRoZSBhdWRpbyB0aHJlYWQuCisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9TdW1taW5nSnVuY3Rpb246OnJlbW92ZU91dHB1dCk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1N1bW1pbmdKdW5jdGlvbjo6dXBkYXRlUmVuZGVyaW5nU3RhdGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaDoKKwogMjAyMS0wMy0x
NSAgRWJyYWhpbSBCeWFnb3dpIDxlYnJhaGltQGdudS5vcmc+IGFuZCBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgPGltZz4gaXNuJ3QgYWJsZSB0byBy
ZW5kZXIgUlRMIHRleHQgY29ycmVjdGx5IGluIEFMVCB0ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCmluZGV4
IDM3OGEyMTU4MjM0MTA3ZTU0NTY1OTQ3Y2RkYmU0YTdiMzE5ZmE3MTIuLjdkMWEyNzRhMWJiNDky
ZmFjMmIwOGNlM2ZmNTQwMDFhMjIyZTIyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwCkBAIC01OSw2ICs1
OSwxMiBAQCBib29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjphZGRPdXRwdXQoQXVkaW9Ob2RlT3V0
cHV0JiBvdXRwdXQpCiAgICAgQVNTRVJUKGNvbnRleHQoKS5pc0dyYXBoT3duZXIoKSk7CiAgICAg
aWYgKCFtX291dHB1dHMuYWRkKCZvdXRwdXQpLmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmIChtX3BlbmRpbmdSZW5kZXJpbmdPdXRwdXRzLmlzRW1wdHkoKSkKKyAg
ICAgICAgbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cyA9IGNvcHlUb1ZlY3RvcihtX291dHB1dHMp
OworICAgIGVsc2UKKyAgICAgICAgbV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cy5hcHBlbmQoJm91
dHB1dCk7CisKICAgICBtYXJrUmVuZGVyaW5nU3RhdGVBc0RpcnR5KCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC02OCw2ICs3NCwxMiBAQCBib29sIEF1ZGlvU3VtbWluZ0p1bmN0aW9uOjpyZW1v
dmVPdXRwdXQoQXVkaW9Ob2RlT3V0cHV0JiBvdXRwdXQpCiAgICAgQVNTRVJUKGNvbnRleHQoKS5p
c0dyYXBoT3duZXIoKSk7CiAgICAgaWYgKCFtX291dHB1dHMucmVtb3ZlKCZvdXRwdXQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9wZW5kaW5nUmVuZGVyaW5nT3V0cHV0cy5p
c0VtcHR5KCkpCisgICAgICAgIG1fcGVuZGluZ1JlbmRlcmluZ091dHB1dHMgPSBjb3B5VG9WZWN0
b3IobV9vdXRwdXRzKTsKKyAgICBlbHNlCisgICAgICAgIG1fcGVuZGluZ1JlbmRlcmluZ091dHB1
dHMucmVtb3ZlRmlyc3QoJm91dHB1dCk7CisKICAgICBtYXJrUmVuZGVyaW5nU3RhdGVBc0RpcnR5
KCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03OCwxMiArOTAsOSBAQCB2b2lkIEF1ZGlvU3Vt
bWluZ0p1bmN0aW9uOjp1cGRhdGVSZW5kZXJpbmdTdGF0ZSgpCiAKICAgICBpZiAobV9yZW5kZXJp
bmdTdGF0ZU5lZWRVcGRhdGluZyAmJiBjYW5VcGRhdGVTdGF0ZSgpKSB7CiAgICAgICAgIC8vIENv
cHkgZnJvbSBtX291dHB1dHMgdG8gbV9yZW5kZXJpbmdPdXRwdXRzLgotICAgICAgICBtX3JlbmRl
cmluZ091dHB1dHMucmVzaXplKG1fb3V0cHV0cy5zaXplKCkpOwotICAgICAgICB1bnNpZ25lZCBp
ID0gMDsKLSAgICAgICAgZm9yIChhdXRvJiBvdXRwdXQgOiBtX291dHB1dHMpIHsKLSAgICAgICAg
ICAgIG1fcmVuZGVyaW5nT3V0cHV0c1tpKytdID0gb3V0cHV0OworICAgICAgICBtX3JlbmRlcmlu
Z091dHB1dHMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ1JlbmRlcmluZ091dHB1dHMsIHsgfSk7
CisgICAgICAgIGZvciAoYXV0byYgb3V0cHV0IDogbV9yZW5kZXJpbmdPdXRwdXRzKQogICAgICAg
ICAgICAgb3V0cHV0LT51cGRhdGVSZW5kZXJpbmdTdGF0ZSgpOwotICAgICAgICB9CiAKICAgICAg
ICAgZGlkVXBkYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TdW1taW5nSnVuY3Rpb24uaAppbmRleCBhNTEyODZhY2JiZmE4YTlhNzU0ZWQx
NzlhMjI3MzM4ZjEwMTY1Mjc1Li5hMTRiYTI2NDc5ZDAxODYwYjI3MjE0NDI5NzYyYmM1YjAxMjVk
NzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU3Vt
bWluZ0p1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1N1bW1pbmdKdW5jdGlvbi5oCkBAIC04NCw2ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgLy8gbV9v
dXRwdXRzIGNvbnRhaW5zIHRoZSBBdWRpb05vZGVPdXRwdXRzIHJlcHJlc2VudGluZyBjdXJyZW50
IGNvbm5lY3Rpb25zIHdoaWNoIGFyZSBub3QgZGlzYWJsZWQuCiAgICAgLy8gVGhlIHJlbmRlcmlu
ZyBjb2RlIHNob3VsZCBuZXZlciB1c2UgdGhpcyBkaXJlY3RseSwgYnV0IGluc3RlYWQgdXNlcyBt
X3JlbmRlcmluZ091dHB1dHMuCiAgICAgSGFzaFNldDxBdWRpb05vZGVPdXRwdXQqPiBtX291dHB1
dHM7CisgICAgVmVjdG9yPEF1ZGlvTm9kZU91dHB1dCo+IG1fcGVuZGluZ1JlbmRlcmluZ091dHB1
dHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>