Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0507d6b8 authored by Svetoslav's avatar Svetoslav
Browse files

Clear binder id after a permissions check before killing a UID.

bug:21035702

Change-Id: I2798d28780421720d85c5b49fa28897aa6c76d97
parent a04c7d40
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -11045,9 +11045,15 @@ public final class ActivityManagerService extends ActivityManagerNative
    public void killUid(int uid, String reason) {
    public void killUid(int uid, String reason) {
        enforceCallingPermission(Manifest.permission.KILL_UID, "killUid");
        enforceCallingPermission(Manifest.permission.KILL_UID, "killUid");
        synchronized (this) {
        synchronized (this) {
            killPackageProcessesLocked(null, UserHandle.getAppId(uid), UserHandle.getUserId(uid),
            final long identity = Binder.clearCallingIdentity();
                    ProcessList.FOREGROUND_APP_ADJ-1, false, true, true, false,
            try {
                killPackageProcessesLocked(null, UserHandle.getAppId(uid),
                        UserHandle.getUserId(uid),
                        ProcessList.PERSISTENT_PROC_ADJ, false, true, true, true,
                        reason != null ? reason : "kill uid");
                        reason != null ? reason : "kill uid");
            } finally {
                Binder.restoreCallingIdentity(identity);
            }
        }
        }
    }
    }