⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 279296 in webkit


Ignore:
Timestamp:
Jun 25, 2021, 12:51:34 PM (5 years ago)
Author:
commit-queue@webkit.org
Message:

Fix null crash in AudioMediaStreamTrackRendererCocoa::start
​https://bugs.webkit.org/show_bug.cgi?id=227386
<rdar://79045120>

Patch by Alex Christensen <​achristensen@webkit.org> on 2021-06-25
Reviewed by Youenn Fablet.

AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy calls those callbacks with nullptr.
So can LocalAudioMediaStreamTrackRendererInternalUnit::retrieveFormatDescription when createAudioUnitIfNeeded
has an early return or hasn't been called yet.

When this happens, let's not crash.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::start):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r279289 r279296  
     12021-06-25  Alex Christensen  <achristensen@webkit.org>
     2
     3        Fix null crash in AudioMediaStreamTrackRendererCocoa::start
     4        https://bugs.webkit.org/show_bug.cgi?id=227386
     5        <rdar://79045120>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        AudioMediaStreamTrackRendererInternalUnitManager::Proxy::~Proxy calls those callbacks with nullptr.
     10        So can LocalAudioMediaStreamTrackRendererInternalUnit::retrieveFormatDescription when createAudioUnitIfNeeded
     11        has an early return or hasn't been called yet.
     12
     13        When this happens, let's not crash.
     14
     15        * platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp:
     16        (WebCore::AudioMediaStreamTrackRendererCocoa::start):
     17
    1182021-06-25  Philippe Normand  <pnormand@igalia.com>
    219
  • trunk/Source/WebCore/platform/mediastream/cocoa/AudioMediaStreamTrackRendererCocoa.cpp

    r278341 r279296  
    4646
    4747    AudioMediaStreamTrackRendererUnit::singleton().retrieveFormatDescription([weakThis = makeWeakPtr(this), callback = WTFMove(callback)](auto* formatDescription) mutable {
    48         if (weakThis)
     48        if (weakThis && formatDescription)
    4949            weakThis->m_outputDescription = makeUnique<CAAudioStreamDescription>(*formatDescription);
    5050        callback();
Note: See TracChangeset for help on using the changeset viewer.