aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNazanin <nazaninb@google.com>2021-04-06 11:32:14 -0700
committerNazanin Bakhshi <nazaninb@google.com>2021-04-20 15:46:48 +0000
commit3363c4a75c7b489628d4e874f53aa5d647bea9d2 (patch)
tree5812263bf051354a2a8777db407a469c9e86a6ef /src
parentbc27940a7f956599c250a248448484a505601e0e (diff)
downloadContactsProvider-3363c4a75c7b489628d4e874f53aa5d647bea9d2.tar.gz
Security fix: as part of enforcing read privilege permission to check package
privileges in TelephonyManager, clear calling identity to ensure current functionalities work Bug: 180938364 Test: cts Change-Id: I722ca5cdde260bccd73fdfd0bf6447c2cd7beff9
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/contacts/VoicemailPermissions.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/com/android/providers/contacts/VoicemailPermissions.java b/src/com/android/providers/contacts/VoicemailPermissions.java
index 58e7a146..b38f7f58 100644
--- a/src/com/android/providers/contacts/VoicemailPermissions.java
+++ b/src/com/android/providers/contacts/VoicemailPermissions.java
@@ -151,7 +151,12 @@ public class VoicemailPermissions {
}
private static boolean packageHasCarrierPrivileges(TelephonyManager tm, String packageName) {
- return tm.checkCarrierPrivilegesForPackageAnyPhone(packageName)
- == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return tm.checkCarrierPrivilegesForPackageAnyPhone(packageName)
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
}
}