diff options
| author | 2025-01-08 16:29:21 +0800 | |
|---|---|---|
| committer | 2025-01-08 16:29:21 +0800 | |
| commit | deab34dcbf1b3780aba4673284836c9de69bffcc (patch) | |
| tree | 83d86c4e50cec1214dfd8964e3acfa5bab6f838d | |
| parent | bf6919ec0eff5482413fbd2a756d2d2064de78c5 (diff) | |
fix missing add global lock to call the anyTaskForId method.
The call chain: mRoot.anyTaskForId --> mTaskSupervisor.restoreRecentTaskLocked(need add global lock).
Bug: none
Flag: EXEMPT bugfix
Change-Id: I381e6af800f2c62f44879c13022f050b8a108eae
| -rw-r--r-- | services/core/java/com/android/server/wm/WindowManagerService.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index e4da389f51fc..4f9b1ccce6b1 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -9926,9 +9926,10 @@ public class WindowManagerService extends IWindowManager.Stub throw new SecurityException("Access denied to process: " + pid + ", must have permission " + Manifest.permission.ACCESS_FPS_COUNTER); } - - if (mRoot.anyTaskForId(taskId) == null) { - throw new IllegalArgumentException("no task with taskId: " + taskId); + synchronized (mGlobalLock) { + if (mRoot.anyTaskForId(taskId) == null) { + throw new IllegalArgumentException("no task with taskId: " + taskId); + } } mTaskFpsCallbackController.registerListener(taskId, callback); |