summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Makoto Onuki <omakoto@google.com> 2016-07-22 02:49:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-07-22 02:49:12 +0000
commit8c5dce56366518b5451cb3704edab59d5638d06d (patch)
tree50c6fc3712a6509fea3c9a9159c2ba1de05dea6b
parentd50b5a9262cd546bc86ef0607b460c0b9585ee2d (diff)
parentd67b187dcc5bde21ef9c137529ade4d375f13d4c (diff)
Merge "Fix realCallingUid/Pid for startActivities()" into nyc-mr1-dev
-rw-r--r--services/core/java/com/android/server/am/ActivityStarter.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index 53289be4294a..525244699082 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -895,13 +895,15 @@ class ActivityStarter {
throw new IllegalArgumentException("intents are length different than resolvedTypes");
}
+ final int realCallingPid = Binder.getCallingPid();
+ final int realCallingUid = Binder.getCallingUid();
int callingPid;
if (callingUid >= 0) {
callingPid = -1;
} else if (caller == null) {
- callingPid = Binder.getCallingPid();
- callingUid = Binder.getCallingUid();
+ callingPid = realCallingPid;
+ callingUid = realCallingUid;
} else {
callingPid = callingUid = -1;
}
@@ -942,7 +944,8 @@ class ActivityStarter {
i == intents.length - 1 ? bOptions : null);
int res = startActivityLocked(caller, intent, null /*ephemeralIntent*/,
resolvedTypes[i], aInfo, null /*rInfo*/, null, null, resultTo, null, -1,
- callingPid, callingUid, callingPackage, callingPid, callingUid, 0,
+ callingPid, callingUid, callingPackage,
+ realCallingPid, realCallingUid, 0,
options, false, componentSpecified, outActivity, null, null);
if (res < 0) {
return res;