From ce340b8d80a32e35dd945c34ce4704a27411c7b5 Mon Sep 17 00:00:00 2001 From: Tetiana Meronyk Date: Fri, 6 Jan 2023 13:41:50 +0000 Subject: [PATCH] Replace 2 synchronized blocks with one in revokeUserAdmin method Bug: 264546208 Test: atest UserManagerServiceTest Change-Id: Icdb25fe2c570dbab3d7e240e67eb1507fe15019f --- .../android/server/pm/UserManagerService.java | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 6bac90532645b..1f17f8b87a317 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1476,20 +1476,15 @@ public class UserManagerService extends IUserManager.Stub { @Override public void revokeUserAdmin(@UserIdInt int userId) { checkManageUserAndAcrossUsersFullPermission("revoke admin privileges"); - synchronized (mPackagesLock) { - UserInfo info; synchronized (mUsersLock) { - info = getUserInfoLU(userId); - } - if (info == null || !info.isAdmin()) { - // Exit if no user found with that id, or the user is not an Admin. - return; - } - - info.flags ^= UserInfo.FLAG_ADMIN; - synchronized (mUsersLock) { - writeUserLP(getUserDataLU(info.id)); + UserData user = getUserDataLU(userId); + if (user == null || !user.info.isAdmin()) { + // Exit if no user found with that id, or the user is not an Admin. + return; + } + user.info.flags ^= UserInfo.FLAG_ADMIN; + writeUserLP(user); } } }