Merge "Clear calling uid before changing whitelist" into oc-dev
am: 97e3db9aee

Change-Id: Icc858733afb22720a9adf1a1c4e85ba47cf03e2d
diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java
index a580d4b..7ba67c5 100644
--- a/services/core/java/com/android/server/am/PendingIntentRecord.java
+++ b/services/core/java/com/android/server/am/PendingIntentRecord.java
@@ -271,10 +271,15 @@
                     resolvedType = key.requestResolvedType;
                 }
 
+                final int callingUid = Binder.getCallingUid();
+                final int callingPid = Binder.getCallingPid();
+
+                final long origId = Binder.clearCallingIdentity();
+
                 if (whitelistDuration > 0) {
                     StringBuilder tag = new StringBuilder(64);
                     tag.append("pendingintent:");
-                    UserHandle.formatUid(tag, Binder.getCallingUid());
+                    UserHandle.formatUid(tag, callingUid);
                     tag.append(":");
                     if (finalIntent.getAction() != null) {
                         tag.append(finalIntent.getAction());
@@ -283,12 +288,10 @@
                     } else if (finalIntent.getData() != null) {
                         tag.append(finalIntent.getData());
                     }
-                    owner.tempWhitelistForPendingIntentLocked(Binder.getCallingPid(),
-                            Binder.getCallingUid(), uid, whitelistDuration, tag.toString());
+                    owner.tempWhitelistForPendingIntentLocked(callingPid,
+                            callingUid, uid, whitelistDuration, tag.toString());
                 }
 
-                final long origId = Binder.clearCallingIdentity();
-
                 boolean sendFinish = finishedReceiver != null;
                 int userId = key.userId;
                 if (userId == UserHandle.USER_CURRENT) {