From da74a153132420635fc6b7f4005d2fbb5c42fd64 Mon Sep 17 00:00:00 2001 From: Jaewan Kim Date: Tue, 3 Oct 2017 23:58:11 +0900 Subject: MediaSessionService: Prevent getActiveSessions() from growing infinitely Bug: 67358262 Change-Id: I1c25a456ff4f2b16fee3098ac8f14d2899fb1ca5 Test: Run CtsMediaHostTest --- .../core/java/com/android/server/media/MediaSessionService.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index b9a2d184aade..b102dde30a94 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -205,9 +205,8 @@ public class MediaSessionService extends SystemService implements Monitor { } private List getActiveSessionsLocked(int userId) { - List records; + List records = new ArrayList<>(); if (userId == UserHandle.USER_ALL) { - records = new ArrayList<>(); int size = mUserRecords.size(); for (int i = 0; i < size; i++) { records.addAll(mUserRecords.valueAt(i).mPriorityStack.getActiveSessions(userId)); @@ -216,9 +215,9 @@ public class MediaSessionService extends SystemService implements Monitor { FullUserRecord user = getFullUserRecordLocked(userId); if (user == null) { Log.w(TAG, "getSessions failed. Unknown user " + userId); - return new ArrayList<>(); + return records; } - records = user.mPriorityStack.getActiveSessions(userId); + records.addAll(user.mPriorityStack.getActiveSessions(userId)); } // Return global priority session at the first whenever it's asked. -- cgit v1.2.3-59-g8ed1b