summaryrefslogtreecommitdiffstats
path: root/media
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 /media
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
Diffstat (limited to 'media')
-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));