diff options
author | Jeff Sharkey <jsharkey@android.com> | 2016-08-09 20:12:43 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-08-09 20:12:43 +0000 |
commit | 3f4a29b5ebc72fa6236f135253fbace6d6d2222d (patch) | |
tree | 780797ecc734425bf0e9a9305bf9f4568ce8c6d7 /src/com/android | |
parent | 09ec8440e9178536ceffea064cf35e116b8f2408 (diff) | |
parent | 7bd19160b10ca48f6434849ca3f5fbe21f72cabf (diff) | |
download | android_packages_providers_DownloadProvider-3f4a29b5ebc72fa6236f135253fbace6d6d2222d.tar.gz android_packages_providers_DownloadProvider-3f4a29b5ebc72fa6236f135253fbace6d6d2222d.tar.bz2 android_packages_providers_DownloadProvider-3f4a29b5ebc72fa6236f135253fbace6d6d2222d.zip |
Enforce calling identity before clearing. am: 8be3a92eb0 am: ec19fe6485 am: b3ce7976f2 am: 860239d87e am: 616f47abce am: a9ea617232 am: 567e549614 am: 14ae5650e4 am: 80ab64c562 am: 77b7d90939
am: 7bd19160b1
Change-Id: I5f041155cf85feb81db55f2b23868754f270ac4d
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/providers/downloads/DownloadProvider.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index ee80ede8..3f23e848 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -1262,6 +1262,19 @@ public final class DownloadProvider extends ContentProvider { logVerboseOpenFileInfo(uri, mode); } + // Perform normal query to enforce caller identity access before + // clearing it to reach internal-only columns + final Cursor probeCursor = query(uri, new String[] { + Downloads.Impl._DATA }, null, null, null); + try { + if ((probeCursor == null) || (probeCursor.getCount() == 0)) { + throw new FileNotFoundException( + "No file found for " + uri + " as UID " + Binder.getCallingUid()); + } + } finally { + IoUtils.closeQuietly(probeCursor); + } + final Cursor cursor = queryCleared(uri, new String[] { Downloads.Impl._DATA, Downloads.Impl.COLUMN_STATUS, Downloads.Impl.COLUMN_DESTINATION, Downloads.Impl.COLUMN_MEDIA_SCANNED }, null, |