summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2018-02-08 15:58:34 -0800
committerMoritz Horstmann <dev@peterzweg.at>2018-04-06 16:46:45 +0200
commit563f1c3a129be46c13eccc4cab7bd049d2c8f687 (patch)
tree7df7caed5057fbeab822683980940132a144f586
parent61e42c38dea46a171d5c782e8a9875a607e83748 (diff)
downloadandroid_frameworks_ex-cm-14.1.tar.gz
android_frameworks_ex-cm-14.1.tar.bz2
android_frameworks_ex-cm-14.1.zip
Add bounds checking for transparency lookupcm-14.1
Bug: 71361451 Test: manual test with sample app Change-Id: Icaa626cfc93115fe1cc2f42040b396c2318bb6e4 (cherry picked from commit 53f97a2dd69b5b74e0fae2108ebab9276760aa47) (cherry picked from commit ebd849ed8aa77c0e1dad7a08df4a55845a067b76)
-rw-r--r--framesequence/jni/FrameSequence_gif.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/framesequence/jni/FrameSequence_gif.cpp b/framesequence/jni/FrameSequence_gif.cpp
index 3ba09dc..ed47834 100644
--- a/framesequence/jni/FrameSequence_gif.cpp
+++ b/framesequence/jni/FrameSequence_gif.cpp
@@ -111,12 +111,14 @@ FrameSequence_gif::FrameSequence_gif(Stream* stream) :
}
#endif
- if (mGif->SColorMap) {
+ const ColorMapObject* cmap = mGif->SColorMap;
+ if (cmap) {
// calculate bg color
GraphicsControlBlock gcb;
DGifSavedExtensionToGCB(mGif, 0, &gcb);
- if (gcb.TransparentColor == NO_TRANSPARENT_COLOR) {
- mBgColor = gifColorToColor8888(mGif->SColorMap->Colors[mGif->SBackGroundColor]);
+ if (gcb.TransparentColor == NO_TRANSPARENT_COLOR
+ && mGif->SBackGroundColor < cmap->ColorCount) {
+ mBgColor = gifColorToColor8888(cmap->Colors[mGif->SBackGroundColor]);
}
}
}
@@ -358,4 +360,3 @@ static RegistryEntry gEntry = {
acceptsBuffers,
};
static Registry gRegister(gEntry);
-