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

Commit 18137256 authored by Winson Chung's avatar Winson Chung Committed by Mohammed Althaf T
Browse files

Use provided calling uid/pid for checking intercept-global-drag flag

- This particular path can not rely on ActivityTaskManagerService's
  enforceTaskPermission() call since that uses the binder calling
  uid/pid, which has been cleared prior to calling
  validateAddingWindowLw().

Bug: 428700812
Flag: EXEMPT bugfix
Test: atest DragDropControllerTests

(cherry picked from commit 467b1858)
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:dd263302d1fe2cea87d337bd02f204e44701de7d
Merged-In: I24b7beb434d234cb3d6a0f1ca0564d82d170d256
Change-Id: I24b7beb434d234cb3d6a0f1ca0564d82d170d256
parent 70f0fa81
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1096,7 +1096,9 @@ public class DisplayPolicy {
                    "DisplayPolicy");
        }
        if ((attrs.privateFlags & PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP) != 0) {
            ActivityTaskManagerService.enforceTaskPermission("DisplayPolicy");
            mContext.enforcePermission(
                    android.Manifest.permission.MANAGE_ACTIVITY_TASKS, callingPid, callingUid,
                    "DisplayPolicy");
        }

        switch (attrs.type) {
+2 −1
Original line number Diff line number Diff line
@@ -228,7 +228,8 @@ public class DragDropControllerTests extends WindowTestsBase {
        attrs.privateFlags |= PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP;
        policy.validateAddingWindowLw(attrs, Binder.getCallingPid(), Binder.getCallingUid());

        verify(mWm.mAtmService).enforceTaskPermission(any());
        verify(mWm.mContext).enforcePermission(
                eq(android.Manifest.permission.MANAGE_ACTIVITY_TASKS), anyInt(), anyInt(), any());
    }

    @Test