diff options
-rw-r--r-- | services/core/java/com/android/server/pm/permission/PermissionManagerService.java | 15 |
1 files changed, 10 insertions, 5 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 290f4aea498e..336c27d98ee1 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -5689,16 +5689,21 @@ public class PermissionManagerService extends IPermissionManager.Stub { appOpsManager.finishProxyOp(AppOpsManager.opToPublicName(op), 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; } } |