37742976 - Catch bad gifs
* A security researcher crafted a gif that would cause the Android
Bitmap code to throw an NPE. That would cause messaging to crash when
decoding the NPE. Catch the NPE.
Test: manually tested the "crash.gif" attached to the bug. Stepped
through the debugger to verify we're catching the NPE and logging
the attempt. Verified normal gifs still work.
Bug: 37742976
Change-Id: Iab814d5b0b514bed0cecddd9a76f1fc095f90892
(cherry picked from commit 3671fd94ae)
This commit is contained in:
committed by
JP Sugarbroad
parent
60519c717e
commit
e0f247e399
@@ -23,6 +23,7 @@ import android.support.rastermill.FrameSequence;
|
||||
import android.support.rastermill.FrameSequenceDrawable;
|
||||
|
||||
import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -55,7 +56,14 @@ public class GifImageResource extends ImageResource {
|
||||
|
||||
@Override
|
||||
public Drawable getDrawable(Resources resources) {
|
||||
try {
|
||||
return new FrameSequenceDrawable(mFrameSequence);
|
||||
} catch (final Exception e) {
|
||||
// Malicious gif images can make platform throw different kind of exceptions. Catch
|
||||
// them all.
|
||||
LogUtil.e(LogUtil.BUGLE_TAG, "Error getting drawable for GIF", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user