Commit 5275c357 authored by Peter E Conn's avatar Peter E Conn Committed by Commit Bot

🛃 Protect against disk read in queryIntentActivities

Bug: 894160
Change-Id: Idd2daa239adee9245690aaa8ae258437bf16c41f
Reviewed-on: https://chromium-review.googlesource.com/c/1275431Reviewed-by: default avatarTed Choc <tedchoc@chromium.org>
Commit-Queue: Peter Conn <peconn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599152}
parent 944dd0e6
...@@ -28,6 +28,7 @@ import org.chromium.base.ApplicationState; ...@@ -28,6 +28,7 @@ import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.PathUtils; import org.chromium.base.PathUtils;
import org.chromium.base.StrictModeContext;
import org.chromium.base.ThreadUtils; import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
...@@ -342,7 +343,9 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat ...@@ -342,7 +343,9 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat
*/ */
public static boolean isPackageSpecializedHandler(String packageName, Intent intent) { public static boolean isPackageSpecializedHandler(String packageName, Intent intent) {
Context context = ContextUtils.getApplicationContext(); Context context = ContextUtils.getApplicationContext();
try { // On certain Samsung devices, queryIntentActivities can trigger a
// StrictModeDiskReadViolation (https://crbug.com/894160).
try (StrictModeContext unused = StrictModeContext.allowDiskReads()){
List<ResolveInfo> handlers = context.getPackageManager().queryIntentActivities( List<ResolveInfo> handlers = context.getPackageManager().queryIntentActivities(
intent, PackageManager.GET_RESOLVED_FILTER); intent, PackageManager.GET_RESOLVED_FILTER);
return getSpecializedHandlersWithFilter(handlers, packageName, intent).size() > 0; return getSpecializedHandlersWithFilter(handlers, packageName, intent).size() > 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment