diff options
author | Zim <zezeozue@google.com> | 2020-07-03 14:21:32 +0100 |
---|---|---|
committer | Dario Freni <dariofreni@google.com> | 2020-07-03 14:29:29 +0000 |
commit | 7838beeaaca74496a7b313221d9fcfd761ac8a4a (patch) | |
tree | a6890d015670c827e284064e52e0ee6e494b7a4c | |
parent | 992e52f2b3087b956facbcae25a211c036a9d313 (diff) | |
download | MediaProvider-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.java | 4 |
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) { |