diff options
| author | 2020-02-17 19:26:41 +0000 | |
|---|---|---|
| committer | 2020-02-17 19:26:41 +0000 | |
| commit | 24274277e1d0dbdbc1d9d7ed2e6f851c068112ac (patch) | |
| tree | 66d3e92559c64dd5a1603fddf55a00b24964cfc4 | |
| parent | 2481844969dfe286792bc28a2d8473761b96d5fb (diff) | |
Clear calling id before binder call
The permission check in app compat fails without clearing calling id.
Bug: 149662772
Test: launch com.appstem.mammoth, it crashed -> add clearcallingid -> doesn't crash
Change-Id: Ide87da8b8c13e8a10723f379bd4e4b386e5d35e4
| -rw-r--r-- | services/core/java/com/android/server/pm/permission/PermissionManagerService.java | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 1fc2dd5193e1..36697f9b6d60 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1878,6 +1878,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { return false; } + final long token = Binder.clearCallingIdentity(); try { if (permName.equals(Manifest.permission.ACCESS_BACKGROUND_LOCATION) && mPlatformCompat.isChangeEnabledByPackageName(BACKGROUND_RATIONALE_CHANGE_ID, @@ -1886,6 +1887,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { } } catch (RemoteException e) { Log.e(TAG, "Unable to check if compatibility change is enabled.", e); + } finally { + Binder.restoreCallingIdentity(token); } return (flags & PackageManager.FLAG_PERMISSION_USER_SET) != 0; |