am a7516e90: Merge "Make sure the .wav extractor does not read data outside the bounds of the \'data\' box." into gingerbread
Merge commit 'a7516e90d01a22d17a470695eefa905e0ff066cc' into gingerbread-plus-aosp * commit 'a7516e90d01a22d17a470695eefa905e0ff066cc': Make sure the .wav extractor does not read data outside the bounds of the 'data' box.
This commit is contained in:
@@ -331,9 +331,20 @@ status_t WAVSource::read(
|
||||
return err;
|
||||
}
|
||||
|
||||
size_t maxBytesToRead =
|
||||
mBitsPerSample == 8 ? kMaxFrameSize / 2 : kMaxFrameSize;
|
||||
|
||||
size_t maxBytesAvailable =
|
||||
(mCurrentPos - mOffset >= (off_t)mSize)
|
||||
? 0 : mSize - (mCurrentPos - mOffset);
|
||||
|
||||
if (maxBytesToRead > maxBytesAvailable) {
|
||||
maxBytesToRead = maxBytesAvailable;
|
||||
}
|
||||
|
||||
ssize_t n = mDataSource->readAt(
|
||||
mCurrentPos, buffer->data(),
|
||||
mBitsPerSample == 8 ? kMaxFrameSize / 2 : kMaxFrameSize);
|
||||
maxBytesToRead);
|
||||
|
||||
if (n <= 0) {
|
||||
buffer->release();
|
||||
|
||||
Reference in New Issue
Block a user