From b747440d2f662ef6191591fbf9166b0201e0c16c Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Mon, 5 Dec 2016 13:10:13 -0800 Subject: [PATCH] Check for nullptr when casting IBinder to IBase. Test: compiles Bug: 33307202 Change-Id: I6ef880188e2f43766e52317244366b2fdd38c728 --- core/jni/android_os_HwBinder.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 23a988a3dcc06..740b24d645a86 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -241,7 +241,14 @@ static void JHwBinder_native_registerService( using android::hidl::manager::V1_0::IServiceManager; sp binder = JHwBinder::GetNativeContext(env, thiz); + sp base = hidl::base::V1_0::IHwBase::asInterface(binder); + if (base.get() == nullptr) { + LOG(ERROR) << "IBinder object cannot be casted to the base interface."; + signalExceptionForError(env, UNKNOWN_ERROR); + return; + } + bool ok = hardware::defaultServiceManager()->add( interfaceChain, serviceName,