Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 483cf883 authored by Andy Hung's avatar Andy Hung Committed by android-build-merger
Browse files

Merge "Track: Check buffer size of static tracks" into lmp-dev am: 782a30d2 am: a3416fc6

am: 42f2fab1

Change-Id: Ifb95a65ef32c643b94554c3904b84678d5459625
parents 6ce4126a 42f2fab1
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -436,6 +436,21 @@ AudioFlinger::PlaybackThread::Track::Track(
        mAudioTrackServerProxy = new AudioTrackServerProxy(mCblk, mBuffer, frameCount,
                mFrameSize, !isExternalTrack(), sampleRate);
    } else {
        // Is the shared buffer of sufficient size?
        // (frameCount * mFrameSize) is <= SIZE_MAX, checked in TrackBase.
        if (sharedBuffer->size() < frameCount * mFrameSize) {
            // Workaround: clear out mCblk to indicate track hasn't been properly created.
            mCblk->~audio_track_cblk_t();   // destroy our shared-structure.
            if (mClient == 0) {
                free(mCblk);
            }
            mCblk = NULL;

            mSharedBuffer.clear(); // release shared buffer early
            android_errorWriteLog(0x534e4554, "38340117");
            return;
        }

        mAudioTrackServerProxy = new StaticAudioTrackServerProxy(mCblk, mBuffer, frameCount,
                mFrameSize);
    }