diff options
| author | 2024-04-09 15:09:17 -0700 | |
|---|---|---|
| committer | 2024-04-10 06:33:29 +0000 | |
| commit | b02d6cdb30e14fc62ea766300b28cbc741e7604a (patch) | |
| tree | f77ae74dbcd67e3f5b8ab4d91239064daf9d206a | |
| parent | 55a2e077cfc9b0de2b24e59d78cc9c051e463def (diff) | |
StartActivity in TaskFragments without globalLock held
If a intent has Content Uri, security exception can occur because
ContentProviderHelper always return "Permission Deinied" if
globalLock is held.
So, startActivity in TaskFragments without globalLock held.
Bug: 333529514
Test: Launch Intent with Content Uri
Change-Id: Ia43ea98ae8026e1515ee4b87b1f1d1aa6138a84b
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowOrganizerController.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/WindowOrganizerController.java b/services/core/java/com/android/server/wm/WindowOrganizerController.java index 14ec41f072dd..e7088832500f 100644 --- a/services/core/java/com/android/server/wm/WindowOrganizerController.java +++ b/services/core/java/com/android/server/wm/WindowOrganizerController.java @@ -1367,10 +1367,10 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub final IBinder callerActivityToken = operation.getActivityToken(); final Intent activityIntent = operation.getActivityIntent(); final Bundle activityOptions = operation.getBundle(); - final int result = mService.getActivityStartController() + final int result = waitAsyncStart(() -> mService.getActivityStartController() .startActivityInTaskFragment(taskFragment, activityIntent, activityOptions, callerActivityToken, caller.mUid, caller.mPid, - errorCallbackToken); + errorCallbackToken)); if (!isStartResultSuccessful(result)) { sendTaskFragmentOperationFailure(organizer, errorCallbackToken, taskFragment, opType, convertStartFailureToThrowable(result, activityIntent)); |