diff --git a/core/jni/android_os_HwBinder.cpp b/core/jni/android_os_HwBinder.cpp index 97833a078f4cc..7da03143087fe 100644 --- a/core/jni/android_os_HwBinder.cpp +++ b/core/jni/android_os_HwBinder.cpp @@ -213,7 +213,9 @@ static void JHwBinder_native_registerService( sp binder = JHwBinder::GetNativeContext(env, thiz); status_t err = hardware::defaultServiceManager()->addService( - String16(reinterpret_cast(serviceName)), + String16( + reinterpret_cast(serviceName), + env->GetStringLength(serviceNameObj)), binder, kVersion); @@ -245,12 +247,15 @@ static jobject JHwBinder_native_getService( LOG(INFO) << "looking for service '" << String8(String16( - reinterpret_cast(serviceName))).string() + reinterpret_cast(serviceName), + env->GetStringLength(serviceNameObj))).string() << "'"; sp service = hardware::defaultServiceManager()->getService( - String16(reinterpret_cast(serviceName)), + String16( + reinterpret_cast(serviceName), + env->GetStringLength(serviceNameObj)), kVersion); env->ReleaseStringCritical(serviceNameObj, serviceName);