From 27e27d944b4e923ca9b81e7fdd6744f94cebb508 Mon Sep 17 00:00:00 2001 From: Jake Klinker Date: Mon, 31 Jan 2022 20:21:06 +0000 Subject: [PATCH] Use UriUtil when checking if a URI is a file. UriUtil.isFileUri contains several additional fixes, so this ensure that existing instances where we check for the file scheme use this method as well. This covers all existing instances in the app of SCHEME_FILE. Change-Id: I1f3131b33823eae3e620aa9608be8e72b2e84aa2 Bug: 215212561 --- src/com/android/messaging/mmslib/pdu/PduPersister.java | 4 ++-- src/com/android/messaging/util/FileUtil.java | 6 +----- src/com/android/messaging/util/ImageUtils.java | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/com/android/messaging/mmslib/pdu/PduPersister.java b/src/com/android/messaging/mmslib/pdu/PduPersister.java index 6615d30..436867a 100644 --- a/src/com/android/messaging/mmslib/pdu/PduPersister.java +++ b/src/com/android/messaging/mmslib/pdu/PduPersister.java @@ -52,6 +52,7 @@ import com.android.messaging.util.Assert; import com.android.messaging.util.ContentType; import com.android.messaging.util.LogUtil; import com.android.messaging.util.OsUtil; +import com.android.messaging.util.UriUtil; import java.io.ByteArrayOutputStream; import java.io.File; @@ -1018,8 +1019,7 @@ public class PduPersister { String path = null; if (null != uri) { final String scheme = uri.getScheme(); - if (null == scheme || scheme.equals("") || - scheme.equals(ContentResolver.SCHEME_FILE)) { + if (null == scheme || scheme.equals("") || UriUtil.isFileUri(uri)) { path = uri.getPath(); } else if (scheme.equals("http")) { diff --git a/src/com/android/messaging/util/FileUtil.java b/src/com/android/messaging/util/FileUtil.java index 7d59aa7..71fbb4b 100644 --- a/src/com/android/messaging/util/FileUtil.java +++ b/src/com/android/messaging/util/FileUtil.java @@ -117,15 +117,11 @@ public class FileUtil { } } - private static boolean isFileUri(final Uri uri) { - return TextUtils.equals(uri.getScheme(), ContentResolver.SCHEME_FILE); - } - // Checks if the file is in /data, and don't allow any app to send personal information. // We're told it's possible to create world readable hardlinks to other apps private data // so we ban all /data file uris. public static boolean isInPrivateDir(Uri uri) { - if (!isFileUri(uri)) { + if (!UriUtil.isFileUri(uri)) { return false; } final File file = new File(uri.getPath()); diff --git a/src/com/android/messaging/util/ImageUtils.java b/src/com/android/messaging/util/ImageUtils.java index a228417..e541d69 100644 --- a/src/com/android/messaging/util/ImageUtils.java +++ b/src/com/android/messaging/util/ImageUtils.java @@ -480,7 +480,7 @@ public class ImageUtils { if (MediaScratchFileProvider.isMediaScratchSpaceUri(mUri)) { inputFilePath = MediaScratchFileProvider.getFileFromUri(mUri).getAbsolutePath(); } else { - if (!TextUtils.equals(mUri.getScheme(), ContentResolver.SCHEME_FILE)) { + if (!UriUtil.isFileUri(mUri)) { Assert.fail("Expected a GIF file uri, but actual uri = " + mUri.toString()); } inputFilePath = mUri.getPath();