diff options
| author | 2017-06-27 20:03:55 +0000 | |
|---|---|---|
| committer | 2017-06-27 20:04:00 +0000 | |
| commit | df2a3295ca72d8c4c87c3168f6baec1daf52e75c (patch) | |
| tree | c1b6a1255ccb7857316685ef7c0e3a40fc5b033b | |
| parent | fb1469df92b831b0562d90e9fbbb2a122426749e (diff) | |
| parent | dab16730213134a7bf4ab1afd81d2c808bc6d7f4 (diff) | |
Merge "Adding additional check for zero-sized snapshot." into oc-dr1-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskSnapshotPersister.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java index 297e2880a455..b628869c54e5 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotPersister.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotPersister.java @@ -25,6 +25,7 @@ import android.app.ActivityManager.TaskSnapshot; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.Bitmap.Config; +import android.graphics.GraphicBuffer; import android.os.Process; import android.os.SystemClock; import android.util.ArraySet; @@ -325,6 +326,15 @@ class TaskSnapshotPersister { final File file = getBitmapFile(mTaskId, mUserId); final File reducedFile = getReducedResolutionBitmapFile(mTaskId, mUserId); final Bitmap bitmap = Bitmap.createHardwareBitmap(mSnapshot.getSnapshot()); + if (bitmap == null) { + Slog.e(TAG, "Invalid task snapshot"); + return false; + } else if (bitmap.getWidth() == 0 || bitmap.getHeight() == 0) { + Slog.e(TAG, "Invalid task snapshot dimensions " + bitmap.getWidth() + "x" + + bitmap.getHeight()); + return false; + } + final Bitmap swBitmap = bitmap.copy(Config.ARGB_8888, false /* isMutable */); final Bitmap reduced = Bitmap.createScaledBitmap(swBitmap, (int) (bitmap.getWidth() * REDUCED_SCALE), |