diff options
author | Marco Nelissen <marcone@google.com> | 2015-10-16 21:22:14 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-12-18 17:30:09 -0500 |
commit | b82353b46bcac8239132cfd624c62aa84caab8be (patch) | |
tree | e364039ae08c02ab93ddf945c6546e709db3c7f1 /media/libstagefright/OMXCodec.cpp | |
parent | f36321997a15edce6ac88414c22efd07da9eb8dc (diff) | |
download | frameworks_av-b82353b46bcac8239132cfd624c62aa84caab8be.zip frameworks_av-b82353b46bcac8239132cfd624c62aa84caab8be.tar.gz frameworks_av-b82353b46bcac8239132cfd624c62aa84caab8be.tar.bz2 |
Move overflow checks into SkipCutBuffer
Previously SkipCutBuffer would check its input parameters to ensure
they were sane, however since bogus values might be the result of
overflows, and overflow protection was recently turned on for
libstagefright, the compiler's overflow checks were performed before
SkipCutBuffer's, resulting in abort rather than just ignoring the
bogus values.
Moving the multiplication by framesize into SkipCutBuffer fixes this.
Change-Id: I1ad6744bb045a5212701bbf6ee44eecb5f318210
Diffstat (limited to 'media/libstagefright/OMXCodec.cpp')
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 6bd54f1..abe19a0 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -1760,14 +1760,13 @@ status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) { int32_t numchannels = 0; if (delay + padding) { if (mOutputFormat->findInt32(kKeyChannelCount, &numchannels)) { - size_t frameSize = numchannels * sizeof(int16_t); if (mSkipCutBuffer != NULL) { size_t prevbuffersize = mSkipCutBuffer->size(); if (prevbuffersize != 0) { ALOGW("Replacing SkipCutBuffer holding %zu bytes", prevbuffersize); } } - mSkipCutBuffer = new SkipCutBuffer(delay * frameSize, padding * frameSize); + mSkipCutBuffer = new SkipCutBuffer(delay, padding, numchannels); } } } |