summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Leshner <wleshner@google.com>2023-11-03 19:17:18 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-11-03 19:17:18 +0000
commitd4717a4d3091e5de8d95b7b1e4ec401354a84e96 (patch)
tree14c2a51af558c9b67faec9a360a8f024f2c35337
parenta77c789d0f399ee9e0bb72c6f77578ccd39d0625 (diff)
parentf00e7d5c08c0b9db32bdcd0aad346451bc5b310e (diff)
downloadbase-d4717a4d3091e5de8d95b7b1e4ec401354a84e96.tar.gz
Merge "Fix vulnerability that allowed attackers to start arbitary activities" into tm-dev am: f00e7d5c08
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/25249793 Change-Id: I6c988f69812de8ec59dc872dd0548caf612e3162 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--core/java/android/service/dreams/DreamService.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 2d461c6cf92e..d380522de643 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -1192,8 +1192,17 @@ public class DreamService extends Service implements Window.Callback {
if (!flattenedString.contains("/")) {
return new ComponentName(serviceInfo.packageName, flattenedString);
}
-
- return ComponentName.unflattenFromString(flattenedString);
+ // Ensure that the component is from the same package as the dream service. If not,
+ // treat the component as invalid and return null instead.
+ final ComponentName cn = ComponentName.unflattenFromString(flattenedString);
+ if (cn == null) return null;
+ if (!cn.getPackageName().equals(serviceInfo.packageName)) {
+ Log.w(TAG,
+ "Inconsistent package name in component: " + cn.getPackageName()
+ + ", should be: " + serviceInfo.packageName);
+ return null;
+ }
+ return cn;
}
/**