From fccca542e9ce3397ea4078bd9e1c2423632310d7 Mon Sep 17 00:00:00 2001 From: Adam Bookatz Date: Wed, 23 Nov 2022 18:01:33 +0000 Subject: [PATCH] Fix getEarliestCreatedFullUser initial value If user 0 isn't a full admin, its creation time should not be part of the calculation. Currently, user 0 will generally be the earliest created user, so no other user can get returned (even if user 0 isn't a full user). This fixes the bug. Bug: 256624031 Change-Id: Idee2d5957560dd8556c53f85645981816494acc6 Test: local --- .../core/java/com/android/server/pm/UserManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 88e12fa9a6045..23a6b67269e85 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -3783,10 +3783,10 @@ public class UserManagerService extends IUserManager.Stub { private UserInfo getEarliestCreatedFullUser() { final List users = getUsersInternal(true, true, true); UserInfo earliestUser = users.get(0); - long earliestCreationTime = earliestUser.creationTime; + long earliestCreationTime = Long.MAX_VALUE; for (int i = 0; i < users.size(); i++) { final UserInfo info = users.get(i); - if (info.isFull() && info.isAdmin() && info.creationTime > 0 + if (info.isFull() && info.isAdmin() && info.creationTime >= 0 && info.creationTime < earliestCreationTime) { earliestCreationTime = info.creationTime; earliestUser = info;