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: Iffc8e73dd3ee14a94958bb50dd11a696eab7f052
This commit is contained in:
Siyamed Sinir
2017-09-13 15:09:24 -07:00
parent 271702fc28
commit 0595b5a94b

View File

@@ -307,10 +307,15 @@ public class ClipboardService extends IClipboard.Stub {
}
private boolean isDeviceLocked() {
final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(
Context.KEYGUARD_SERVICE);
return keyguardManager != null && keyguardManager.isKeyguardLocked()
final long token = Binder.clearCallingIdentity();
try {
final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(
Context.KEYGUARD_SERVICE);
return keyguardManager != null && keyguardManager.isKeyguardLocked()
&& keyguardManager.isKeyguardSecure();
} finally {
Binder.restoreCallingIdentity(token);
}
}
private final void checkUriOwnerLocked(Uri uri, int uid) {