Merge "Track: Check buffer size of static tracks" into lmp-dev am: 782a30d2ab am: a3416fc6b4 am: 42f2fab126 am: 483cf88382 am: f89b2427ad am: 7779f826d4

am: c343fd2846

Change-Id: I72c4c8d74ffaa8b8bc03a265ae3ff06796bbeb5b
gugelfrei
Andy Hung 7 years ago committed by android-build-merger
commit 69b0154d59

@ -400,6 +400,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