summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDheeraj CVR <cvr.dheeraj@gmail.com>2013-06-17 09:21:42 +0530
committerDaniel Hillenbrand <codeworkx@cyanogenmod.org>2013-06-24 16:19:45 +0200
commitc58721cbdcbfc46f550954a1c258d9b0529e4d81 (patch)
tree2233cf84573641ca89efb15cd26e580705313e4f
parent43b58a4fa272983db7ca22ebf592305429b1bba0 (diff)
downloadframeworks_av-c58721cbdcbfc46f550954a1c258d9b0529e4d81.zip
frameworks_av-c58721cbdcbfc46f550954a1c258d9b0529e4d81.tar.gz
frameworks_av-c58721cbdcbfc46f550954a1c258d9b0529e4d81.tar.bz2
libstagefright: fix indefinate loop in QueryCodec
portFormat.nIndex is being incremented which is not trustworthy since the nIndex value could be overriden by the OMX Component, which causes an indefinate loop which inturn causes a memory leak and crashes the system. OMX Component on encore and p970 exhibits this behaviour (OMX.TI.720P.Decoder). This patch prevents stagefright freezes when QueryCodec is called during Gallery Thumbnail generation for videos and Adobe Flash playback. Change-Id: I825c99ddecacbb927e22ac7d1a53facb26d95ff2
-rw-r--r--media/libstagefright/OMXCodec.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp
index c7b4617..efb5f26 100644
--- a/media/libstagefright/OMXCodec.cpp
+++ b/media/libstagefright/OMXCodec.cpp
@@ -5433,7 +5433,8 @@ status_t QueryCodec(
OMX_VIDEO_PARAM_PORTFORMATTYPE portFormat;
InitOMXParams(&portFormat);
portFormat.nPortIndex = !isEncoder ? 1 : 0;
- for (portFormat.nIndex = 0;; ++portFormat.nIndex) {
+ for (OMX_U32 index = 0;;index++) {
+ portFormat.nIndex = index;
err = omx->getParameter(
node, OMX_IndexParamVideoPortFormat,
&portFormat, sizeof(portFormat));