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,