OSDN Git Service

clearCallingIdentity before calling into getPackageUidAsUser
authorTony Mak <tonymak@google.com>
Thu, 14 Dec 2017 12:40:07 +0000 (12:40 +0000)
committerandroid-build-team Robot <android-build-team-robot@google.com>
Fri, 25 May 2018 18:40:37 +0000 (18:40 +0000)
Fix: 70585244
Bug: 69981755

Test: Enable any accessibility service -> inflate work profile
      -> Tap on any work app -> no longer crash

Test: cts-tradefed run cts-dev --module DevicePolicyManager --test com.android.cts.devicepolicy.CrossProfileAppsHostSideTest.testPrimaryUserToManagedProfile
Change-Id: I80d18f4e2ab76a228cb0aa2c8312c323a9b5c84d
(cherry picked from commit 857326e3731939f6ec7979e1d86585bf0ea484f4)

services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java

index d0d65d9..8b4076a 100644 (file)
@@ -4566,11 +4566,14 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
         }
 
         private boolean isValidPackageForUid(String packageName, int uid) {
+            final long token = Binder.clearCallingIdentity();
             try {
                 return uid == mPackageManager.getPackageUid(
                         packageName, UserHandle.getUserId(uid));
             } catch (PackageManager.NameNotFoundException e) {
                 return false;
+            } finally {
+                Binder.restoreCallingIdentity(token);
             }
         }