summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-08-11 15:40:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-08-11 15:40:55 +0000
commitf0e3514d8e44ca657619a84a3f0135a65115c6f0 (patch)
treed4bece08ce95a734bf331977b990462daa82f9b9
parent0245ef047ac30f76329d84fcccb22c9c2360193c (diff)
parent92b3eb67950a3d56c0bd002ed6f4ce9611f9fd1a (diff)
Merge changes from topic "new-intent-navUp-sc" into sc-mainline-prod
* changes: [automerge] [RESTRICT AUTOMERGE] Do not send new Intent to non-exported activity when navigateUpTo 2p: 89ebc8c43f [RESTRICT AUTOMERGE] Do not send new Intent to non-exported activity when navigateUpTo
-rw-r--r--services/core/java/com/android/server/wm/Task.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index 2e641717cb7f..a88894e1da99 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -7026,7 +7026,23 @@ class Task extends WindowContainer<WindowContainer> {
parentLaunchMode == ActivityInfo.LAUNCH_SINGLE_TASK ||
parentLaunchMode == ActivityInfo.LAUNCH_SINGLE_TOP ||
(destIntentFlags & Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) {
- parent.deliverNewIntentLocked(callingUid, destIntent, destGrants, srec.packageName);
+ boolean abort;
+ try {
+ abort = !mTaskSupervisor.checkStartAnyActivityPermission(destIntent,
+ parent.info, null /* resultWho */, -1 /* requestCode */, srec.getPid(),
+ callingUid, srec.info.packageName, null /* callingFeatureId */,
+ false /* ignoreTargetSecurity */, false /* launchingInTask */, srec.app,
+ null /* resultRecord */, null /* resultRootTask */);
+ } catch (SecurityException e) {
+ abort = true;
+ }
+ if (abort) {
+ android.util.EventLog.writeEvent(0x534e4554, "238605611", callingUid, "");
+ foundParentInTask = false;
+ } else {
+ parent.deliverNewIntentLocked(callingUid, destIntent, destGrants,
+ srec.packageName);
+ }
} else {
try {
ActivityInfo aInfo = AppGlobals.getPackageManager().getActivityInfo(