Handle malformed gif streams more gracefully
Change-Id: I2ea934b90d73e1431fb3df9ff793aa8ff2033099
diff --git a/framesequence/jni/FrameSequence.cpp b/framesequence/jni/FrameSequence.cpp
index 5c34425..efcfefa 100644
--- a/framesequence/jni/FrameSequence.cpp
+++ b/framesequence/jni/FrameSequence.cpp
@@ -20,5 +20,16 @@
FrameSequence* FrameSequence::create(Stream* stream) {
const RegistryEntry* entry = Registry::Find(stream);
- return entry ? entry->createFrameSequence(stream) : 0;
+
+ if (!entry) return NULL;
+
+ FrameSequence* frameSequence = entry->createFrameSequence(stream);
+ if (!frameSequence->getFrameCount() ||
+ !frameSequence->getWidth() || !frameSequence->getHeight()) {
+ // invalid contents, abort
+ delete frameSequence;
+ return NULL;
+ }
+
+ return frameSequence;
}