From 37fd8c29ffbe7653afb21cff088224d00d68cceb Mon Sep 17 00:00:00 2001 From: Luntao Wang Date: Tue, 20 Jun 2023 21:05:13 +0800 Subject: [PATCH] [Bugfix] Fix array out of bounds. Problem: JE caused by multi-threaded operation of WindowList. Solution: Lock to prevent array out of bounds. Bug: 288065262 Test: Manual && Monkey Test Change-Id: Idd58f5c74444e93758f89133779f2076f95f1725 --- services/core/java/com/android/server/wm/TaskPersister.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/TaskPersister.java b/services/core/java/com/android/server/wm/TaskPersister.java index 09fd90030f0cb..d28fe2bea98c9 100644 --- a/services/core/java/com/android/server/wm/TaskPersister.java +++ b/services/core/java/com/android/server/wm/TaskPersister.java @@ -549,8 +549,8 @@ public class TaskPersister implements PersisterQueue.Listener { // Write out one task. byte[] data = null; Task task = mTask; - if (DEBUG) Slog.d(TAG, "Writing task=" + task); synchronized (mService.mGlobalLock) { + if (DEBUG) Slog.d(TAG, "Writing task=" + task); if (task.inRecents) { // Still there. try {