diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-10-17 19:49:37 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-10-17 19:49:37 +0000 |
commit | 0197c51e5d57dd717744b116e371c1baa91eb4d0 (patch) | |
tree | b03c2bc63a7fb4ef2e387c60dab93b39fffda646 | |
parent | 7bd890b0a21332db0b9610363ee35cc5c3ae710c (diff) | |
parent | b160218b16e63a5f2dcc2b82a218cabcf17fbba8 (diff) | |
download | base-aml_tz3_314012010.tar.gz |
Snap for 9184912 from b160218b16e63a5f2dcc2b82a218cabcf17fbba8 to mainline-tzdata3-releaseaml_tz3_314012070aml_tz3_314012050aml_tz3_314012010aml_tz3_313110000aml_tz3_312511020aml_tz3_312511010android12-mainline-tzdata3-releaseaml_tz3_314012010
Change-Id: I788b692ac1b759538c8a93e560ffae62b966e11f
-rw-r--r-- | core/java/android/content/pm/parsing/ParsingPackageImpl.java | 3 | ||||
-rw-r--r-- | services/core/java/com/android/server/pm/PackageSetting.java | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java index 5a7f21040d0a..a6e1867fce0c 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java +++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java @@ -1695,6 +1695,9 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { for (int i = component.getIntents().size() - 1; i >= 0; i--) { IntentFilter filter = component.getIntents().get(i); for (int groupIndex = filter.countMimeGroups() - 1; groupIndex >= 0; groupIndex--) { + if (mimeGroups != null && mimeGroups.size() > 500) { + throw new IllegalStateException("Max limit on number of MIME Groups reached"); + } mimeGroups = ArrayUtils.add(mimeGroups, filter.getMimeGroup(groupIndex)); } } diff --git a/services/core/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java index 376326264d9c..d8f902a9a086 100644 --- a/services/core/java/com/android/server/pm/PackageSetting.java +++ b/services/core/java/com/android/server/pm/PackageSetting.java @@ -328,11 +328,20 @@ public class PackageSetting extends PackageSettingBase { } public boolean setMimeGroup(String mimeGroup, List<String> mimeTypes) { + for (String mimeType : mimeTypes) { + if (mimeType.length() > 255) { + throw new IllegalArgumentException("MIME type length exceeds 255 characters"); + } + } ArraySet<String> oldMimeTypes = getMimeGroupInternal(mimeGroup); if (oldMimeTypes == null) { throw new IllegalArgumentException("Unknown MIME group " + mimeGroup + " for package " + name); } + if (mimeTypes.size() > 500) { + throw new IllegalStateException("Max limit on MIME types for MIME group " + + mimeGroup + " exceeded for package " + name); + } ArraySet<String> newMimeTypes = new ArraySet<>(mimeTypes); boolean hasChanges = !newMimeTypes.equals(oldMimeTypes); |