summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Raphael Kim <raphk@google.com> 2023-09-18 14:07:23 -0700
committer Raphael Kim <raphk@google.com> 2023-10-10 19:59:18 +0000
commit6f5fc7f0580127b779a6f69c3301d5fc8d5764c0 (patch)
tree0552ea1f1938d0d0763ba631a63a10eb04339ba1
parent42ccd640efe88ac47827f09cf6067512b881e7ca (diff)
[CDM] Validate component name length before requesting notification access.
Bug: 295335110 Test: Test app with long component name Change-Id: I7ea5d5c1f78858db9865f3310d1e0aff9c8b5579 Merged-In: I7ea5d5c1f78858db9865f3310d1e0aff9c8b5579
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index c9caf62fc146..5445b63a4e20 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -172,6 +172,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
private static final int ASSOCIATE_WITHOUT_PROMPT_MAX_PER_TIME_WINDOW = 5;
private static final long ASSOCIATE_WITHOUT_PROMPT_WINDOW_MS = 60 * 60 * 1000; // 60 min;
+ private static final int MAX_CN_LENGTH = 500;
private static final String XML_TAG_ASSOCIATIONS = "associations";
private static final String XML_TAG_ASSOCIATION = "association";
@@ -555,6 +556,9 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
String callingPackage = component.getPackageName();
checkCanCallNotificationApi(callingPackage);
int userId = getCallingUserId();
+ if (component.flattenToString().length() > MAX_CN_LENGTH) {
+ throw new IllegalArgumentException("Component name is too long.");
+ }
final long identity = Binder.clearCallingIdentity();
try {
return PendingIntent.getActivityAsUser(getContext(),