From cc749f79e7c33653f4d59d5943bb1524be760335 Mon Sep 17 00:00:00 2001 From: Jackson Michael Date: Tue, 18 Oct 2022 13:24:47 +0000 Subject: [PATCH] Adding a check if the user exist before making a state mutation Bug: 186272717 Test: Unit Test Change-Id: Ica3814be111708a9adf614eb4f17fe446918c0a4 --- .../java/com/android/server/pm/UserManagerService.java | 3 +++ .../src/com/android/server/pm/UserManagerServiceTest.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 60f247843bb7d..657707400da63 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -2633,6 +2633,9 @@ public class UserManagerService extends IUserManager.Stub { /** @return a specific user restriction that's in effect currently. */ @Override public boolean hasUserRestriction(String restrictionKey, @UserIdInt int userId) { + if (!userExists(userId)) { + return false; + } checkManageOrInteractPermissionIfCallerInOtherProfileGroup(userId, "hasUserRestriction"); return mLocalService.hasUserRestriction(restrictionKey, userId); } diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java index 96707fde8edb2..00aa52012e592 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceTest.java @@ -175,6 +175,13 @@ public class UserManagerServiceTest { assertThat(mUserManagerService.hasUserRestriction(DISALLOW_USER_SWITCH, userId)).isFalse(); } + @Test + public void testHasUserRestriction_NonExistentUserReturnsFalse() { + int nonExistentUserId = UserHandle.USER_NULL; + assertThat(mUserManagerService.hasUserRestriction(DISALLOW_USER_SWITCH, nonExistentUserId)) + .isFalse(); + } + @Test public void testSetUserRestrictionWithIncorrectID() throws Exception { int incorrectId = 1;