diff options
-rw-r--r-- | core/java/android/os/Binder.java | 1 | ||||
-rw-r--r-- | core/jni/android_util_Binder.cpp | 12 |
2 files changed, 3 insertions, 10 deletions
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java index d492e0870b2e..fce3437db049 100644 --- a/core/java/android/os/Binder.java +++ b/core/java/android/os/Binder.java @@ -379,6 +379,7 @@ public class Binder implements IBinder { * * @see #clearCallingIdentity */ + @CriticalNative public static final native void restoreCallingIdentity(long token); /** diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index e1180384fcc9..32b8fa61c8a0 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -960,17 +960,8 @@ static jlong android_os_Binder_clearCallingIdentity() return IPCThreadState::self()->clearCallingIdentity(); } -static void android_os_Binder_restoreCallingIdentity(JNIEnv* env, jobject clazz, jlong token) +static void android_os_Binder_restoreCallingIdentity(jlong token) { - // XXX temporary validation check to debug crashes. - int uid = (int)(token>>32); - if (uid > 0 && uid < 999) { - // In Android currently there are no uids in this range. - char buf[128]; - sprintf(buf, "Restoring bad calling ident: 0x%" PRIx64, token); - jniThrowException(env, "java/lang/IllegalStateException", buf); - return; - } IPCThreadState::self()->restoreCallingIdentity(token); } @@ -1064,6 +1055,7 @@ static const JNINativeMethod gBinderMethods[] = { { "isHandlingTransaction", "()Z", (void*)android_os_Binder_isHandlingTransaction }, // @CriticalNative { "clearCallingIdentity", "()J", (void*)android_os_Binder_clearCallingIdentity }, + // @CriticalNative { "restoreCallingIdentity", "(J)V", (void*)android_os_Binder_restoreCallingIdentity }, // @CriticalNative { "setThreadStrictModePolicy", "(I)V", (void*)android_os_Binder_setThreadStrictModePolicy }, |