Check package name format before using it for SPA nav
Bug: b/372895305 Test: unit test Flag: EXEMPT bug fix Change-Id: Ife615c78c48a2d6f5b938c880c9c2128c5551644
This commit is contained in:
@@ -38,7 +38,7 @@ class SpaAppBridgeActivity : Activity() {
|
||||
|
||||
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()}"
|
||||
}
|
||||
}
|
||||
|
@@ -37,6 +37,16 @@ class SpaAppBridgeActivityTest {
|
||||
|
||||
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() {
|
||||
|
Reference in New Issue
Block a user