Loading core/jni/android_os_Parcel.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -101,9 +101,18 @@ static void android_os_Parcel_markSensitive(jlong nativePtr) static void android_os_Parcel_markForBinder(JNIEnv* env, jclass clazz, jlong nativePtr, jobject binder) { LOG_ALWAYS_FATAL_IF(binder == nullptr, "Null binder specified for markForBinder"); Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel) { parcel->markForBinder(ibinderForJavaObject(env, binder)); sp<IBinder> nBinder = ibinderForJavaObject(env, binder); if (nBinder == nullptr) { ALOGE("Native binder in markForBinder is null for non-null jobject"); return; } parcel->markForBinder(nBinder); } } Loading core/jni/android_util_Binder.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -798,6 +798,12 @@ sp<IBinder> ibinderForJavaObject(JNIEnv* env, jobject obj) if (env->IsInstanceOf(obj, gBinderOffsets.mClass)) { JavaBBinderHolder* jbh = (JavaBBinderHolder*) env->GetLongField(obj, gBinderOffsets.mObject); if (jbh == nullptr) { ALOGE("JavaBBinderHolder null on binder"); return nullptr; } return jbh->get(env, obj); } Loading Loading
core/jni/android_os_Parcel.cpp +10 −1 Original line number Diff line number Diff line Loading @@ -101,9 +101,18 @@ static void android_os_Parcel_markSensitive(jlong nativePtr) static void android_os_Parcel_markForBinder(JNIEnv* env, jclass clazz, jlong nativePtr, jobject binder) { LOG_ALWAYS_FATAL_IF(binder == nullptr, "Null binder specified for markForBinder"); Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); if (parcel) { parcel->markForBinder(ibinderForJavaObject(env, binder)); sp<IBinder> nBinder = ibinderForJavaObject(env, binder); if (nBinder == nullptr) { ALOGE("Native binder in markForBinder is null for non-null jobject"); return; } parcel->markForBinder(nBinder); } } Loading
core/jni/android_util_Binder.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -798,6 +798,12 @@ sp<IBinder> ibinderForJavaObject(JNIEnv* env, jobject obj) if (env->IsInstanceOf(obj, gBinderOffsets.mClass)) { JavaBBinderHolder* jbh = (JavaBBinderHolder*) env->GetLongField(obj, gBinderOffsets.mObject); if (jbh == nullptr) { ALOGE("JavaBBinderHolder null on binder"); return nullptr; } return jbh->get(env, obj); } Loading