summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author lijilou <lijilou@xiaomi.corp-partner.google.com> 2025-01-08 16:29:21 +0800
committer lijilou <lijilou@xiaomi.corp-partner.google.com> 2025-01-08 16:29:21 +0800
commitdeab34dcbf1b3780aba4673284836c9de69bffcc (patch)
tree83d86c4e50cec1214dfd8964e3acfa5bab6f838d
parentbf6919ec0eff5482413fbd2a756d2d2064de78c5 (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.java7
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);