summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chet Haase <chet@google.com> 2021-07-26 20:45:17 +0000
committer Chet Haase <chet@google.com> 2021-07-26 20:45:17 +0000
commit34def796c98539e23e86d2d3728d46ab3c4a79da (patch)
tree0d36e18c10253c0da0bd28ecb4ed5b0f15201fb4
parent7f1c09cb105a718af28135d5c9b0022e77dcac19 (diff)
Fixes crash when constructing NinePatch with null chunk data
Previously, ART runtime would crash checking the size of the chunk array if it was null. Now we simply set the chunk size to zero and fail with an exception, the same as when the array is not large enough. Test: NinePatchTest#testConstructor Fixes: 189478462 Change-Id: I0352a9b6be1ce64c6a40ce8dffdaa146aacb7a03
-rw-r--r--libs/hwui/jni/NinePatch.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/hwui/jni/NinePatch.cpp b/libs/hwui/jni/NinePatch.cpp
index 6942017d5f27..b7ddd211b0de 100644
--- a/libs/hwui/jni/NinePatch.cpp
+++ b/libs/hwui/jni/NinePatch.cpp
@@ -64,7 +64,7 @@ public:
}
static jlong validateNinePatchChunk(JNIEnv* env, jobject, jbyteArray obj) {
- size_t chunkSize = env->GetArrayLength(obj);
+ size_t chunkSize = obj != NULL ? env->GetArrayLength(obj) : 0;
if (chunkSize < (int) (sizeof(Res_png_9patch))) {
jniThrowRuntimeException(env, "Array too small for chunk.");
return NULL;