commit | 484b4be8f3634fa0d0fed53729490b9135c644b5 | [log] [tgz] |
---|---|---|
author | zhibinliu <[email protected]> | Fri Dec 20 08:14:09 2024 +0000 |
committer | Android Build Coastguard Worker <[email protected]> | Wed Mar 12 16:52:24 2025 -0700 |
tree | af4a8786429eff5a224f54141d6797d1ade0ced9 | |
parent | f16fa58405ed94703ea1886c483a2e2ce1c2b176 [diff] |
Check package name format before using it for SPA nav Bug: b/372895305 Test: unit test Flag: EXEMPT bug fix (cherry picked from commit b2ee5ccf5b79d50cf53a86716042f0e2d7ff42ad) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:9e4964ff220a40282478fd3769e20779ce49a342) Merged-In: Ife615c78c48a2d6f5b938c880c9c2128c5551644 Change-Id: Ife615c78c48a2d6f5b938c880c9c2128c5551644
diff --git a/src/com/android/settings/spa/SpaAppBridgeActivity.kt b/src/com/android/settings/spa/SpaAppBridgeActivity.kt index a68d220..67a5be9 100644 --- a/src/com/android/settings/spa/SpaAppBridgeActivity.kt +++ b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
@@ -38,7 +38,7 @@ companion object { fun getDestinationForApp(destinationPrefix: String, intent: Intent): String? { - val packageName = intent.data?.schemeSpecificPart ?: return null + val packageName = intent.data?.schemeSpecificPart?.takeIf { Regex("^([a-zA-Z]\\w*\\.)*[a-zA-Z]\\w*$").matches(it) } ?: return null return "$destinationPrefix/$packageName/${UserHandle.myUserId()}" } }
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt index be2b5e0..134cdb4 100644 --- a/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt +++ b/tests/spa_unit/src/com/android/settings/spa/SpaAppBridgeActivityTest.kt
@@ -37,6 +37,16 @@ assertThat(destination).isEqualTo("$DESTINATION/$PACKAGE_NAME/${UserHandle.myUserId()}") } + @Test + fun getDestinationForApp_hasMalformedPackageName() { + val intent = Intent().apply { + data = Uri.parse("package:package.name/10#") + } + + val destination = getDestinationForApp(DESTINATION, intent) + + assertThat(destination).isNull() + } @Test fun getDestinationForApp_noPackageName() {