summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZim <zezeozue@google.com>2020-07-03 14:21:32 +0100
committerDario Freni <dariofreni@google.com>2020-07-03 14:29:29 +0000
commit7838beeaaca74496a7b313221d9fcfd761ac8a4a (patch)
treea6890d015670c827e284064e52e0ee6e494b7a4c
parent992e52f2b3087b956facbcae25a211c036a9d313 (diff)
downloadMediaProvider-7838beeaaca74496a7b313221d9fcfd761ac8a4a.tar.gz
DO NOT MERGE Handle relative path extraction for PublicVolume
/storage/123-ABC would not extract a valid relative path, we should error any such requests Test: atest android.scopedstorage.cts.host.PublicVolumeHostTest#testAccess_directory Bug: 159104838 Change-Id: I3a06a23f743c830c722d5bf3126ff370bc32d199
-rw-r--r--src/com/android/providers/media/MediaProvider.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 0d14a6fe3..206aae1da 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -6904,6 +6904,10 @@ public class MediaProvider extends ContentProvider {
// except for non-default top-level directories.
if (forWrite) {
final String[] relativePath = sanitizePath(extractRelativePath(path));
+ if (relativePath.length == 0) {
+ Log.e(TAG, "Directoy write not allowed on invalid relative path for " + path);
+ return OsConstants.EPERM;
+ }
final boolean isTopLevelDir =
relativePath.length == 1 && TextUtils.isEmpty(relativePath[0]);
if (isTopLevelDir) {