diff options
author | Wale Ogunwale <ogunwale@google.com> | 2015-06-11 12:44:47 -0700 |
---|---|---|
committer | Wale Ogunwale <ogunwale@google.com> | 2015-06-24 22:01:15 +0000 |
commit | 5a487696e27ae91349f1d1f43faa9f38dc897141 (patch) | |
tree | 3f653fd8843b92956e6262c6dda2928605cdc6f9 | |
parent | a6932472d976c63a6b3970aac3607c4fe3a790b9 (diff) | |
download | frameworks_base-5a487696e27ae91349f1d1f43faa9f38dc897141.zip frameworks_base-5a487696e27ae91349f1d1f43faa9f38dc897141.tar.gz frameworks_base-5a487696e27ae91349f1d1f43faa9f38dc897141.tar.bz2 |
Prevent system uid component from running in an app process
Bug: 21669445
Change-Id: I11d0bc5301d7e2a64972221f54f3cbd611f8e404
(cherry picked from commit 44368567f840e3469b5fd2c9399ed444b6f46ebf)
-rwxr-xr-x | services/core/java/com/android/server/am/ActivityManagerService.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 0983066..8e00cb3 100755 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -2875,9 +2875,14 @@ public final class ActivityManagerService extends ActivityManagerNative // should never happen). SparseArray<ProcessRecord> procs = mProcessNames.getMap().get(processName); if (procs == null) return null; - final int N = procs.size(); - for (int i = 0; i < N; i++) { - if (UserHandle.isSameUser(procs.keyAt(i), uid)) return procs.valueAt(i); + final int procCount = procs.size(); + for (int i = 0; i < procCount; i++) { + final int procUid = procs.keyAt(i); + if (UserHandle.isApp(procUid) || !UserHandle.isSameUser(procUid, uid)) { + // Don't use an app process or different user process for system component. + continue; + } + return procs.valueAt(i); } } ProcessRecord proc = mProcessNames.get(processName, uid); |