summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Natalie Silvanovich <natashenka@google.com> 2015-02-19 00:05:53 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-02-19 00:05:53 +0000
commitbb4d0676fde95e68fc708d54499bb40c8fa7ccd3 (patch)
tree8fd1f89a6614066da2eaf877fea8768d82e44637
parent708959b5326b7877553397fc17237e02f0d3adb1 (diff)
parent494d5b7757fab576facc5a7e923d2a15650dea1c (diff)
am 494d5b77: Merge "Check that bitmap\'s size does not exceed 32 bits. DO NOT MERGE" into lmp-dev
* commit '494d5b7757fab576facc5a7e923d2a15650dea1c': Check that bitmap's size does not exceed 32 bits. DO NOT MERGE
-rw-r--r--core/jni/android/graphics/Graphics.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp
index d7b75dbb0324..41d1eb2985ea 100644
--- a/core/jni/android/graphics/Graphics.cpp
+++ b/core/jni/android/graphics/Graphics.cpp
@@ -610,7 +610,12 @@ jbyteArray GraphicsJNI::allocateJavaPixelRef(JNIEnv* env, SkBitmap* bitmap,
return NULL;
}
- const size_t size = bitmap->getSize();
+ const int64_t size64 = bitmap->computeSize64();
+ if (!sk_64_isS32(size64)) {
+ doThrowIAE(env, "bitmap size exceeds 32 bits");
+ return NULL;
+ }
+ const size_t size = sk_64_asS32(size64);
jbyteArray arrayObj = (jbyteArray) env->CallObjectMethod(gVMRuntime,
gVMRuntime_newNonMovableArray,
gByte_class, size);