From 8ec845c8fe0f03bc57c901bc484541bdd6a7cf80 Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Fri, 15 May 2015 13:40:15 -0700 Subject: stagefright: check IMemory::pointer() before using the allocation bug: 19779574 Change-Id: I4ffe8c3fadc07da211f421e75ee83010b01d9cbb --- media/libstagefright/ACodec.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 9276818..2c9af32 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -498,7 +498,9 @@ status_t ACodec::allocateBuffersOnPort(OMX_U32 portIndex) { for (OMX_U32 i = 0; i < def.nBufferCountActual; ++i) { sp mem = mDealer[portIndex]->allocate(def.nBufferSize); - CHECK(mem.get() != NULL); + if (mem == NULL || mem->pointer() == NULL) { + return NO_MEMORY; + } BufferInfo info; info.mStatus = BufferInfo::OWNED_BY_US; @@ -755,7 +757,9 @@ status_t ACodec::allocateOutputMetaDataBuffers() { sp mem = mDealer[kPortIndexOutput]->allocate( sizeof(struct VideoDecoderOutputMetaData)); - CHECK(mem.get() != NULL); + if (mem == NULL || mem->pointer() == NULL) { + return NO_MEMORY; + } info.mData = new ABuffer(mem->pointer(), mem->size()); // we use useBuffer for metadata regardless of quirks -- cgit v1.1