Loading core/jni/android_os_HwParcel.cpp +3 −10 Original line number Diff line number Diff line Loading @@ -292,19 +292,11 @@ static void JHwParcel_native_enforceInterface( return; } const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL); const char *interfaceName = env->GetStringUTFChars(interfaceNameObj, NULL); if (interfaceName) { String8 interfaceNameCopy = String8(String16( reinterpret_cast<const char16_t *>(interfaceName), env->GetStringLength(interfaceNameObj))); env->ReleaseStringCritical(interfaceNameObj, interfaceName); interfaceName = NULL; hardware::Parcel *parcel = JHwParcel::GetNativeContext(env, thiz)->getParcel(); bool valid = parcel->enforceInterface(interfaceNameCopy.string()); bool valid = parcel->enforceInterface(interfaceName); if (!valid) { jniThrowException( Loading @@ -312,6 +304,7 @@ static void JHwParcel_native_enforceInterface( "java/lang/SecurityException", "HWBinder invocation to an incorrect interface"); } env->ReleaseStringUTFChars(interfaceNameObj, interfaceName); } } Loading core/jni/android_os_Parcel.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -625,8 +625,8 @@ static void android_os_Parcel_enforceInterface(JNIEnv* env, jclass clazz, jlong IPCThreadState* threadState = IPCThreadState::self(); const int32_t oldPolicy = threadState->getStrictModePolicy(); const bool isValid = parcel->enforceInterface( String16(reinterpret_cast<const char16_t*>(str), env->GetStringLength(name)), reinterpret_cast<const char16_t*>(str), env->GetStringLength(name), threadState); env->ReleaseStringCritical(name, str); if (isValid) { Loading Loading
core/jni/android_os_HwParcel.cpp +3 −10 Original line number Diff line number Diff line Loading @@ -292,19 +292,11 @@ static void JHwParcel_native_enforceInterface( return; } const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL); const char *interfaceName = env->GetStringUTFChars(interfaceNameObj, NULL); if (interfaceName) { String8 interfaceNameCopy = String8(String16( reinterpret_cast<const char16_t *>(interfaceName), env->GetStringLength(interfaceNameObj))); env->ReleaseStringCritical(interfaceNameObj, interfaceName); interfaceName = NULL; hardware::Parcel *parcel = JHwParcel::GetNativeContext(env, thiz)->getParcel(); bool valid = parcel->enforceInterface(interfaceNameCopy.string()); bool valid = parcel->enforceInterface(interfaceName); if (!valid) { jniThrowException( Loading @@ -312,6 +304,7 @@ static void JHwParcel_native_enforceInterface( "java/lang/SecurityException", "HWBinder invocation to an incorrect interface"); } env->ReleaseStringUTFChars(interfaceNameObj, interfaceName); } } Loading
core/jni/android_os_Parcel.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -625,8 +625,8 @@ static void android_os_Parcel_enforceInterface(JNIEnv* env, jclass clazz, jlong IPCThreadState* threadState = IPCThreadState::self(); const int32_t oldPolicy = threadState->getStrictModePolicy(); const bool isValid = parcel->enforceInterface( String16(reinterpret_cast<const char16_t*>(str), env->GetStringLength(name)), reinterpret_cast<const char16_t*>(str), env->GetStringLength(name), threadState); env->ReleaseStringCritical(name, str); if (isValid) { Loading