From e2cc1799b913a8743c80c6c7d7d796753dd71119 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Fri, 27 May 2022 10:00:50 -0700 Subject: [PATCH] Ensure all AttributionSources are deregistered in PMS this is a cp of aosp/1978250 Bug: 218794347 Test: Presubmit Change-Id: Ie56a2ee60a304ac0d306a71dc4453d11fdf9b44f Merged-In: I39072f3b72f0be6d6debbcbc948d7a940ad92785 --- .../pm/permission/PermissionManagerService.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index b3ba20b811188..37538db43ddc0 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1112,15 +1112,21 @@ public class PermissionManagerService extends IPermissionManager.Stub { resolvedAttributionSource, skipCurrentFinish); } - if (next == null || next.getNext() == null) { - return; - } - RegisteredAttribution registered = sRunningAttributionSources.remove(current.getToken()); if (registered != null) { registered.unregister(); } + + if (next == null || next.getNext() == null) { + if (next != null) { + registered = sRunningAttributionSources.remove(next.getToken()); + if (registered != null) { + registered.unregister(); + } + } + return; + } current = next; } }