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
diff --git a/libs/hwui/jni/NinePatch.cpp b/libs/hwui/jni/NinePatch.cpp
index 6942017..b7ddd21 100644
--- a/libs/hwui/jni/NinePatch.cpp
+++ b/libs/hwui/jni/NinePatch.cpp
@@ -64,7 +64,7 @@
}
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;