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

Commit 3f1a426b authored by Louis Chang's avatar Louis Chang Committed by Android (Google) Code Review
Browse files

Merge "Prevent activity token leaked to another process" into main

parents b91b8b84 61ab2b65
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -429,7 +429,7 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
            }

            final IBinder activityToken;
            if (activity.getPid() == mOrganizerPid) {
            if (activity.getPid() == mOrganizerPid && activity.getUid() == mOrganizerUid) {
                // We only pass the actual token if the activity belongs to the organizer process.
                activityToken = activity.token;
            } else {
@@ -458,7 +458,8 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
                change.setTaskFragmentToken(lastParentTfToken);
            }
            // Only pass the activity token to the client if it belongs to the same process.
            if (nextFillTaskActivity != null && nextFillTaskActivity.getPid() == mOrganizerPid) {
            if (nextFillTaskActivity != null && nextFillTaskActivity.getPid() == mOrganizerPid
                    && nextFillTaskActivity.getUid() == mOrganizerUid) {
                change.setOtherActivityToken(nextFillTaskActivity.token);
            }
            return change;
@@ -553,6 +554,10 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
                        "Replacing existing organizer currently unsupported");
            }

            if (pid <= 0) {
                throw new IllegalStateException("Cannot register from invalid pid: " + pid);
            }

            if (restoreFromCachedStateIfPossible(organizer, pid, uid, outSavedState)) {
                return;
            }