[RESTRICT AUTOMERGE] Limit length of the name in <uses-permission> am: de8ef32d02

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20953243

Change-Id: I2292c8d861bbc9605e60ea82e9af0fa65903ef9e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Jackal Guo
2023-02-02 01:28:48 +00:00
committed by Automerger Merge Worker

View File

@@ -245,6 +245,9 @@ public class ParsingPackageUtils {
private static final String MAX_NUM_COMPONENTS_ERR_MSG = private static final String MAX_NUM_COMPONENTS_ERR_MSG =
"Total number of components has exceeded the maximum number: " + MAX_NUM_COMPONENTS; "Total number of components has exceeded the maximum number: " + MAX_NUM_COMPONENTS;
/** The maximum permission name length. */
private static final int MAX_PERMISSION_NAME_LENGTH = 512;
@IntDef(flag = true, prefix = { "PARSE_" }, value = { @IntDef(flag = true, prefix = { "PARSE_" }, value = {
PARSE_CHATTY, PARSE_CHATTY,
PARSE_COLLECT_CERTIFICATES, PARSE_COLLECT_CERTIFICATES,
@@ -1271,6 +1274,11 @@ public class ParsingPackageUtils {
// that may change. // that may change.
String name = sa.getNonResourceString( String name = sa.getNonResourceString(
R.styleable.AndroidManifestUsesPermission_name); R.styleable.AndroidManifestUsesPermission_name);
if (TextUtils.length(name) > MAX_PERMISSION_NAME_LENGTH) {
return input.error(INSTALL_PARSE_FAILED_MANIFEST_MALFORMED,
"The name in the <uses-permission> is greater than "
+ MAX_PERMISSION_NAME_LENGTH);
}
int maxSdkVersion = 0; int maxSdkVersion = 0;
TypedValue val = sa.peekValue( TypedValue val = sa.peekValue(