diff options
| author | 2020-05-03 15:52:07 +0000 | |
|---|---|---|
| committer | 2020-05-03 15:52:07 +0000 | |
| commit | 495fd8e5495e42e78fb003ad18b0148775889909 (patch) | |
| tree | 00cc4b1d148ac90aca3319fa6e2dc5ad7fe81fc2 | |
| parent | aeae048088acbea279550bd9404dd78e76637735 (diff) | |
| parent | 51de04a67d3c1b2ae13cfec831fbb19b3899661d (diff) | |
Merge "Protect against assumptions of a top focused stack." into rvc-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityRecord.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/ActivityStarter.java | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 5f8e9ffb2881..8fbb2a90bb38 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -5526,6 +5526,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A // timeout should not be caused by this. if (stopped) { final ActivityStack stack = mRootWindowContainer.getTopDisplayFocusedStack(); + if (stack == null) { + return this; + } // Try to use the one which is closest to top. ActivityRecord r = stack.getResumedActivity(); if (r == null) { diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 4ea990285269..79e8ee3ec54b 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1125,7 +1125,7 @@ class ActivityStarter { // If we are starting an activity that is not from the same uid as the currently resumed // one, check whether app switches are allowed. - if (voiceSession == null && (stack.getResumedActivity() == null + if (voiceSession == null && stack != null && (stack.getResumedActivity() == null || stack.getResumedActivity().info.applicationInfo.uid != realCallingUid)) { if (!mService.checkAppSwitchAllowedLocked(callingPid, callingUid, realCallingPid, realCallingUid, "Activity start")) { |