From d20c7c084fd86486ecd4b58ba9b5da8eccdbb45b Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Tue, 15 Jun 2021 03:43:40 +0000 Subject: [PATCH] Fix mCachedAssociations for multiple users There's no need clearCallingIdentity for add a new association since we setup our mCachedAssociations as an array and the index is the user id. We will store all the associations at index 0, if we use clearCallingIdentity. Furthermore we alreay called withCleanCallingIdentity when call updateSpecialAccessPermissionForAssociatedPackage. Fix: 185617756, 186795393 Test: Manual Change-Id: I16d443b33e15873d29e6c5a652af9b29274fbf29 --- .../CompanionDeviceManagerService.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 83dfe8ed25767..05131d44b01e1 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -454,19 +454,13 @@ public class CompanionDeviceManagerService extends SystemService implements Bind }).cancelTimeout(); }, FgThread.getExecutor()).whenComplete(uncheckExceptions((association, err) -> { - - final long callingIdentity = Binder.clearCallingIdentity(); - try { - if (err == null) { - addAssociation(association); - } else { - Slog.e(LOG_TAG, "Failed to discover device(s)", err); - callback.onFailure("No devices found: " + err.getMessage()); - } - cleanup(); - } finally { - Binder.restoreCallingIdentity(callingIdentity); + if (err == null) { + addAssociation(association); + } else { + Slog.e(LOG_TAG, "Failed to discover device(s)", err); + callback.onFailure("No devices found: " + err.getMessage()); } + cleanup(); })); }