SoftVorbis: fail gracefully when hitting invalid parameter.
Bug: 27843650
Change-Id: I0150414854da6a5e61bc13f5cb5ff470b8e35894
diff --git a/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp b/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
index 41d9d55..6a689c4 100644
--- a/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
+++ b/media/libstagefright/codecs/vorbis/dec/SoftVorbis.cpp
@@ -338,7 +338,13 @@
}
if (inHeader->nFilledLen || !mSawInputEos) {
- CHECK_GE(inHeader->nFilledLen, sizeof(numPageSamples));
+ if (inHeader->nFilledLen < sizeof(numPageSamples)) {
+ notify(OMX_EventError, OMX_ErrorBadParameter, 0, NULL);
+ mSignalledError = true;
+ ALOGE("onQueueFilled, input header has nFilledLen %u, expected %zu",
+ inHeader->nFilledLen, sizeof(numPageSamples));
+ return;
+ }
memcpy(&numPageSamples,
inHeader->pBuffer
+ inHeader->nOffset + inHeader->nFilledLen - 4,