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

am: 69b0154d59

Change-Id: Ifbb0da32f562fe5b1001e5dc2fcc3490305e694e
gugelfrei
Andy Hung 7 years ago committed by android-build-merger
commit 1d66db35e5

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