summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2014-11-17 19:34:37 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-17 19:34:37 +0000
commit58b9ee28262a608853dbb1134b5a79cf7fdce502 (patch)
treec5d14f98b63594cc317836dc14e2126e18b6f38d
parent58cdb919d1e7d6aa6fd066c22a457388c23982b0 (diff)
parentcd75f59f8cdeda95a50155ad0c9f4abd559037ec (diff)
downloadframeworks_base-58b9ee28262a608853dbb1134b5a79cf7fdce502.zip
frameworks_base-58b9ee28262a608853dbb1134b5a79cf7fdce502.tar.gz
frameworks_base-58b9ee28262a608853dbb1134b5a79cf7fdce502.tar.bz2
am cd75f59f: Merge "Fix deadlock caused by synchronous setOccluded() method in keyguard" into lmp-mr1-dev
* commit 'cd75f59f8cdeda95a50155ad0c9f4abd559037ec': Fix deadlock caused by synchronous setOccluded() method in keyguard
-rw-r--r--packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
index ee699d2..98d4112 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
@@ -22,6 +22,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.os.Debug;
import android.os.IBinder;
+import android.os.Process;
import android.util.Log;
import android.view.MotionEvent;
@@ -52,6 +53,10 @@ public class KeyguardService extends Service {
}
void checkPermission() {
+ // Avoid deadlock by avoiding calling back into the system process.
+ if (Binder.getCallingUid() == Process.SYSTEM_UID) return;
+
+ // Otherwise,explicitly check for caller permission ...
if (getBaseContext().checkCallingOrSelfPermission(PERMISSION) != PERMISSION_GRANTED) {
Log.w(TAG, "Caller needs permission '" + PERMISSION + "' to call " + Debug.getCaller());
throw new SecurityException("Access denied to process: " + Binder.getCallingPid()