Handle color bounds correctly in GIF decode.
Bug: 31631842
Change-Id: Ia4d25d9cd440286366f82433d3ff227384c0572f
(cherry picked from commit 0ada9456d0270cb0e357a43d9187a6418d770760)
diff --git a/framesequence/jni/FrameSequence_gif.cpp b/framesequence/jni/FrameSequence_gif.cpp
index 4722378..5118319 100644
--- a/framesequence/jni/FrameSequence_gif.cpp
+++ b/framesequence/jni/FrameSequence_gif.cpp
@@ -148,7 +148,7 @@
static void copyLine(Color8888* dst, const unsigned char* src, const ColorMapObject* cmap,
int transparent, int width) {
for (; width > 0; width--, src++, dst++) {
- if (*src != transparent) {
+ if (*src != transparent && *src < cmap->ColorCount) {
*dst = gifColorToColor8888(cmap->Colors[*src]);
}
}