From 6d79675e0c0e55a7d5591a123727796f52c42954 Mon Sep 17 00:00:00 2001 From: Siyamed Sinir Date: Wed, 13 Sep 2017 16:32:21 -0700 Subject: [PATCH] Fix ClipboardService device lock check for cross profile ClipboardService.isDeviceLocked should clear callingIdentity before accessing KeyguardManager. Test: bit CtsDevicePolicyManagerTestCases:com.android.cts.devicepolicy.ManagedProfileTest Bug: 64934810 Change-Id: I81a7adac8c9d56ed801ffc1380fcbc987d5df3e6 Merged-In: I712abfe8d542cd1be9c1816f407c8912321ac480 --- .../com/android/server/clipboard/ClipboardService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java index a94a524e2c769..28028ce040462 100644 --- a/services/core/java/com/android/server/clipboard/ClipboardService.java +++ b/services/core/java/com/android/server/clipboard/ClipboardService.java @@ -307,8 +307,14 @@ public class ClipboardService extends IClipboard.Stub { } private boolean isDeviceLocked() { - final KeyguardManager keyguardManager = mContext.getSystemService(KeyguardManager.class); - return keyguardManager != null && keyguardManager.isDeviceLocked(); + final long token = Binder.clearCallingIdentity(); + try { + final KeyguardManager keyguardManager = mContext.getSystemService( + KeyguardManager.class); + return keyguardManager != null && keyguardManager.isDeviceLocked(); + } finally { + Binder.restoreCallingIdentity(token); + } } private final void checkUriOwnerLocked(Uri uri, int uid) {