Check cross user permission before clear calling identity in
getSimCallManagerForUser.
By clearing calling identity, UID/PID will be reset to system_server.
Bug: 191487797
Test: Unit test, test with debug app.
Change-Id: Iaeff9aa5b8775310fa71abaa8b865762b20df374
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 6fb2897..0f3ca72 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -471,11 +471,11 @@
try {
Log.startSession("TSI.gSCMFU");
final int callingUid = Binder.getCallingUid();
+ if (user != ActivityManager.getCurrentUser()) {
+ enforceCrossUserPermission(callingUid);
+ }
long token = Binder.clearCallingIdentity();
try {
- if (user != ActivityManager.getCurrentUser()) {
- enforceCrossUserPermission(callingUid);
- }
return mPhoneAccountRegistrar.getSimCallManager(UserHandle.of(user));
} finally {
Binder.restoreCallingIdentity(token);