From ca06d8b5ada53cc135177363d9f270dc6301b8af Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 9 Oct 2017 08:25:36 -0700 Subject: [PATCH] EventLog: Check for exception after add() When reading events, calling Collection.add() may result in an OutOfMemoryError or immutability error. Check for an exception after the call in EventLog and SecurityLog. Bug: 67511924 Test: m Test: Device boots Change-Id: If0fbf6b01051b5311eeb88d3f52470cd8b1eec59 --- core/jni/android_app_admin_SecurityLog.cpp | 3 +++ core/jni/android_util_EventLog.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/core/jni/android_app_admin_SecurityLog.cpp b/core/jni/android_app_admin_SecurityLog.cpp index 5c45b4b26a1bd..9dfb4e0ed4072 100644 --- a/core/jni/android_app_admin_SecurityLog.cpp +++ b/core/jni/android_app_admin_SecurityLog.cpp @@ -186,6 +186,9 @@ static void readEvents(JNIEnv* env, int loggerMode, jlong startTime, jobject out env->CallBooleanMethod(out, gCollectionAddID, event); env->DeleteLocalRef(event); env->DeleteLocalRef(array); + if (env->ExceptionCheck() == JNI_TRUE) { + break; + } } android_logger_list_close(logger_list); diff --git a/core/jni/android_util_EventLog.cpp b/core/jni/android_util_EventLog.cpp index 9fd7c40410586..76ce30779ced0 100644 --- a/core/jni/android_util_EventLog.cpp +++ b/core/jni/android_util_EventLog.cpp @@ -215,6 +215,9 @@ static void readEvents(JNIEnv* env, int loggerMode, jintArray tags, jlong startT env->CallBooleanMethod(out, gCollectionAddID, event); env->DeleteLocalRef(event); env->DeleteLocalRef(array); + if (env->ExceptionCheck() == JNI_TRUE) { + break; + } } }