diff options
| author | 2016-12-06 15:45:33 +0000 | |
|---|---|---|
| committer | 2016-12-06 15:45:33 +0000 | |
| commit | fee17700af9d9be42d2c146514a7e9e66f64e55a (patch) | |
| tree | b704788716390dc965c73b7f0908f022fafa138f | |
| parent | ca8412c31659144ba1502577be992c7d7faa7a95 (diff) | |
| parent | 1abe6def681cfefd9120fe5ca9c2a65dc5cefb60 (diff) | |
Merge "Check for nullptr when casting IBinder to IBase." am: 5014028691
am: 1abe6def68
Change-Id: I532e548c9558dada977ca1926ef4b7e39215924f
| -rw-r--r-- | core/jni/android_os_HwBinder.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 23a988a3dcc0..740b24d645a8 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<hardware::IBinder> binder = JHwBinder::GetNativeContext(env, thiz); + sp<hidl::base::V1_0::IBase> 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, |