<?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>223449</bug_id>
          
          <creation_ts>2021-03-18 09:44:05 -0700</creation_ts>
          <short_desc>Avoid heap allocations under AudioSampleDataSource::pullSamplesInternal()</short_desc>
          <delta_ts>2021-05-12 07:13:27 -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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</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>1741229</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 09:44:05 -0700</bug_when>
    <thetext>Avoid heap allocations under AudioSampleDataSource::pullSamplesInternal():
Thread 12 Crashed:: WebCore: AudioWorklet
0   com.apple.JavaScriptCore            0x000000059fd88aee 0x59fd86000 + 10990
1   com.apple.JavaScriptCore            0x00000005a152629b 0x59fd86000 + 24773275
2   com.apple.JavaScriptCore            0x000000059fdc637b 0x59fd86000 + 263035
3   com.apple.WebCore                   0x00000005808ffc65 WTF::Detail::CallableWrapperBase&lt;void&gt;::operator new(unsigned long) + 21 (Function.h:37)
4   com.apple.WebCore                   0x0000000582265d18 std::__1::__unique_if&lt;WTF::Detail::CallableWrapper&lt;WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3, void&gt; &gt;::__unique_single std::__1::make_unique&lt;WTF::Detail::CallableWrapper&lt;WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3, void&gt;, WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&gt;(WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&amp;&amp;) + 40 (memory:2755)
5   com.apple.WebCore                   0x0000000582265c86 decltype(auto) WTF::makeUnique&lt;WTF::Detail::CallableWrapper&lt;WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3, void&gt;, WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&gt;(WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&amp;&amp;) + 54 (StdLibExtras.h:507)
6   com.apple.WebCore                   0x0000000582265c30 WTF::Function&lt;void ()&gt;::Function&lt;WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3, void&gt;(WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&amp;&amp;) + 48 (Function.h:74)
7   com.apple.WebCore                   0x000000058224e48d WTF::Function&lt;void ()&gt;::Function&lt;WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3, void&gt;(WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode)::$_3&amp;&amp;) + 29 (Function.h:74)
8   com.apple.WebCore                   0x000000058224ddc8 WebCore::AudioSampleDataSource::pullSamplesInternal(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode) + 824 (AudioSampleDataSource.mm:242)
9   com.apple.WebCore                   0x000000058224e8aa WebCore::AudioSampleDataSource::pullSamples(AudioBufferList&amp;, unsigned long, unsigned long long, double, WebCore::AudioSampleDataSource::PullMode) + 170 (AudioSampleDataSource.mm:343)
10  com.apple.WebCore                   0x000000058295c717 WebCore::WebAudioSourceProviderCocoa::provideInput(WebCore::AudioBus*, unsigned long) + 919 (WebAudioSourceProviderCocoa.mm:97)
11  com.apple.WebCore                   0x0000000582c8c0a6 WebCore::MediaElementAudioSourceNode::provideInput(WebCore::AudioBus*, unsigned long) + 166 (MediaElementAudioSourceNode.cpp:125)
12  com.apple.WebCore                   0x0000000582c8c52e WebCore::MediaElementAudioSourceNode::process(unsigned long) + 606 (MediaElementAudioSourceNode.cpp:178)
13  com.apple.WebCore                   0x0000000582bdc9ae WebCore::AudioNode::processIfNecessary(unsigned long) + 462 (AudioNode.cpp:474)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741237</commentid>
    <comment_count>1</comment_count>
      <attachid>423610</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-18 09:53:30 -0700</bug_when>
    <thetext>Created attachment 423610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741302</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-18 11:48:16 -0700</bug_when>
    <thetext>Committed r274657: &lt;https://commits.webkit.org/r274657&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423610.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741306</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-18 11:49:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/75583342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759241</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-05-12 07:13:27 -0700</bug_when>
    <thetext>Hum, this logging was useful in the past to debug crackling and was recently useful again.
I think we should try to resurrect it in some ways.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423610</attachid>
            <date>2021-03-18 09:53:30 -0700</date>
            <delta_ts>2021-03-18 11:48:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223449-20210318095327.patch</filename>
            <type>text/plain</type>
            <size>3294</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUzMzViYWExNjFkOTli
YTY2ZjkyZjI4ZWRkY2I4Yzg0ZGI2MjQxZi4uNTg1ZGIzOThhM2IyMWEwYjA2MWFhMzA1OTVjNmMz
NmYyN2VkMTUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTAzLTE4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQXZvaWQgaGVhcCBhbGxvY2F0
aW9ucyB1bmRlciBBdWRpb1NhbXBsZURhdGFTb3VyY2U6OnB1bGxTYW1wbGVzSW50ZXJuYWwoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNDQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXVkaW9TYW1w
bGVEYXRhU291cmNlOjpwdWxsU2FtcGxlc0ludGVybmFsKCkgd2FzIGRvaW5nIGhlYXAgYWxsb2Nh
dGlvbnMgb24gdGhlIGF1ZGlvIHRocmVhZCwKKyAgICAgICAganVzdCBmb3IgbG9nZ2luZyBwdXJw
b3NlcyAoUnVuTG9vcDo6ZGlzcGF0Y2goKSAmIEZ1bmN0aW9uIGNvbnN0cnVjdG9yIGRvIGhlYXAg
YWxsb2NhdGlvbnMpLgorICAgICAgICBEcm9wIHRoaXMgbG9nZ2luZyB0byBhZGRyZXNzIHRoZSBp
c3N1ZSwgYWZ0ZXIgY2xlYXJpbmcgdGhpcyB3aXRoIEplciBOb2JsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2FtcGxlRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6cHVsbFNhbXBsZXNJbnRlcm5hbCk6CisKIDIw
MjEtMDMtMTggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9p
ZCBoZWFwIGFsbG9jYXRpb24gdW5kZXIgUGFubmVyTm9kZTo6cHVsbElucHV0cygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBsZURhdGFT
b3VyY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb1NhbXBs
ZURhdGFTb3VyY2UubW0KaW5kZXggNTBhZGNiZjQ1NjVhZWUyMTI3MWU2MTJjMDJmZGNkYWZkZTI0
MzRmZi4uNTU4YzM4MmEyZTg0NWIxZTA4ZDAxZDMzZGI3ZjI4YzdhMWZlY2RjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9TYW1wbGVEYXRhU291
cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvU2Ft
cGxlRGF0YVNvdXJjZS5tbQpAQCAtMjM5LDE4ICsyMzksMTEgQEAgYm9vbCBBdWRpb1NhbXBsZURh
dGFTb3VyY2U6OnB1bGxTYW1wbGVzSW50ZXJuYWwoQXVkaW9CdWZmZXJMaXN0JiBidWZmZXIsIHNp
emVfdAogCiAgICAgICAgIG1fb3V0cHV0U2FtcGxlT2Zmc2V0ID0gKGVuZEZyYW1lIC0gc2FtcGxl
Q291bnQpIC0gdGltZVN0YW1wOwogICAgICAgICBtX291dHB1dFNhbXBsZU9mZnNldCAtPSBjb21w
dXRlT2Zmc2V0RGVsYXkobV9vdXRwdXREZXNjcmlwdGlvbi0+c2FtcGxlUmF0ZSgpLCBtX2xhc3RQ
dXNoZWRTYW1wbGVDb3VudCk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbbG9n
SWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIG91dHB1dFNhbXBsZU9mZnNldCA9IG1fb3V0cHV0
U2FtcGxlT2Zmc2V0LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyldIHsK
LSAgICAgICAgICAgIEFMV0FZU19MT0cobG9nSWRlbnRpZmllciwgInNldHRpbmcgbmV3IG9mZnNl
dCB0byAiLCBvdXRwdXRTYW1wbGVPZmZzZXQpOwotICAgICAgICB9KTsKICAgICB9CiAKICAgICB0
aW1lU3RhbXAgKz0gbV9vdXRwdXRTYW1wbGVPZmZzZXQ7CiAKICAgICBpZiAodGltZVN0YW1wIDwg
c3RhcnRGcmFtZSB8fCB0aW1lU3RhbXAgKyBzYW1wbGVDb3VudCA+IGVuZEZyYW1lKSB7Ci0gICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbbG9nSWRlbnRpZmllciA9IExPR0lERU5USUZJ
RVIsIHRpbWVTdGFtcCwgc3RhcnRGcmFtZSwgZW5kRnJhbWUsIHNhbXBsZUNvdW50LCBvdXRwdXRT
YW1wbGVPZmZzZXQgPSBtX291dHB1dFNhbXBsZU9mZnNldCwgdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIoKnRoaXMpXSB7Ci0gICAgICAgICAgICBFUlJPUl9MT0cobG9nSWRlbnRpZmll
ciwgIm5vdCBlbm91Z2ggZGF0YSwgc2FtcGxlICIsIHRpbWVTdGFtcCwgIiB3aXRoIG9mZnNldCAi
LCBvdXRwdXRTYW1wbGVPZmZzZXQsICIsIHRyeWluZyB0byBnZXQgIiwgc2FtcGxlQ291bnQsICIg
c2FtcGxlcywgYnV0IG5vdCBjb21wbGV0ZWx5IGluIHJhbmdlIFsiLCBzdGFydEZyYW1lLCAiIC4u
ICIsIGVuZEZyYW1lLCAiXSIpOwotICAgICAgICB9KTsKLQogICAgICAgICBpZiAodGltZVN0YW1w
IDwgc3RhcnRGcmFtZSB8fCB0aW1lU3RhbXAgPj0gZW5kRnJhbWUpIHsKICAgICAgICAgICAgIC8v
IFdlIGFyZSBvdXQgb2YgdGhlIHdpbmRvdywgbGV0J3MgcmVzdGFydCB0aGUgb2Zmc2V0IGNvbXB1
dGF0aW9uLgogICAgICAgICAgICAgbV9zaG91bGRDb21wdXRlT3V0cHV0U2FtcGxlT2Zmc2V0ID0g
dHJ1ZTsKQEAgLTI2MCw5ICsyNTMsNiBAQCBib29sIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6cHVs
bFNhbXBsZXNJbnRlcm5hbChBdWRpb0J1ZmZlckxpc3QmIGJ1ZmZlciwgc2l6ZV90CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUgdG9vIGNsb3NlIGZyb20gZW5kRnJhbWUs
IGxldCdzIHdhaXQgZm9yIG1vcmUgZGF0YSB0byBiZSBwdXNoZWQuCiAgICAgICAgICAgICBtX291
dHB1dFNhbXBsZU9mZnNldCAtPSBzYW1wbGVDb3VudDsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbbG9nSWRlbnRpZmllciA9IExPR0lERU5USUZJRVIsIG91dHB1dFNhbXBs
ZU9mZnNldCA9IG1fb3V0cHV0U2FtcGxlT2Zmc2V0LCB0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cigqdGhpcyldIHsKLSAgICAgICAgICAgICAgICBBTFdBWVNfTE9HKGxvZ0lkZW50aWZp
ZXIsICJ1cGRhdGluZyBvZmZzZXQgdG8gIiwgb3V0cHV0U2FtcGxlT2Zmc2V0KTsKLSAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6emVyb0FC
TChidWZmZXIsIGJ5dGVDb3VudCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>