From d04ec018d58368942199e736ac978380c6c840e8 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 25 Feb 2020 17:48:49 -0800 Subject: [PATCH] Verify all possible hosts that match web nav Even if an matches non-web schemes in addition to http or https, make sure to include its cited hosts in the autoVerify evaluation. Bug: 150038428 Test: atest OsHostTests#testIntentFilterHostValidation Change-Id: If9ef0fc53d96e6581c56d86f89fe63bc9a5fb89a Merged-In: If9ef0fc53d96e6581c56d86f89fe63bc9a5fb89a (cherry picked from commit 1fba0f897f276d5d47962534867e764da8061105) --- .../java/com/android/server/pm/PackageManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 414449d42d781..6d2b3aa0744cb 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -17434,11 +17434,13 @@ public class PackageManagerService extends IPackageManager.Stub // and whether there are any web-nav filters that fit the profile for running // a verification pass now. if (needToVerify) { + final boolean needsVerification = needsNetworkVerificationLPr(packageName); final int verificationId = mIntentFilterVerificationToken++; for (ParsedActivity a : activities) { for (ParsedIntentInfo filter : a.getIntents()) { - if (filter.handlesWebUris(true) - && needsNetworkVerificationLPr(a.getPackageName())) { + // Run verification against hosts mentioned in any web-nav intent filter, + // even if the filter matches non-web schemes as well + if (needsVerification && filter.handlesWebUris(false)) { if (DEBUG_DOMAIN_VERIFICATION) Slog.d(TAG, "Verification needed for IntentFilter:" + filter.toString()); mIntentFilterVerifier.addOneIntentFilterVerification(