Merge "Track: Check buffer size of static tracks" into lmp-dev

am: 782a30d2ab

Change-Id: Ie27330ced83beccaed5a5a3d69ec6833be7e36e1
gugelfrei
Andy Hung 7 years ago committed by android-build-merger
commit a3416fc6b4

@ -438,6 +438,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);
}

Loading…
Cancel
Save