From e3f0818b1a127a4ad35665c8781065d0fae2c5d6 Mon Sep 17 00:00:00 2001 From: Andres Morales Date: Wed, 10 Feb 2016 11:56:25 -0800 Subject: [PATCH] check for null members in NotifyHandler An unexpected message posted to the queue should not crash the application. Bug: 27097094 Change-Id: Ide6a07014660ff14e0f287660c534cfa1e0acad9 --- core/jni/android_view_ThreadedRenderer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp index dd0e45636ee75..ac7700786ea01 100644 --- a/core/jni/android_view_ThreadedRenderer.cpp +++ b/core/jni/android_view_ThreadedRenderer.cpp @@ -322,7 +322,11 @@ private: void NotifyHandler::handleMessage(const Message& message) { JNIEnv* env = getenv(mVm); - jobject target = env->NewLocalRef(mObserver->getObserverReference()); + ObserverProxy* observer = mObserver.get(); + LOG_ALWAYS_FATAL_IF(observer == nullptr, "received message with no observer configured"); + LOG_ALWAYS_FATAL_IF(mBuffer == nullptr, "received message with no data to report"); + + jobject target = env->NewLocalRef(observer->getObserverReference()); if (target != nullptr) { jlongArray javaBuffer = get_metrics_buffer(env, target);