diff options
author | fiaxh <github@lightrise.org> | 2016-03-15 11:09:28 +0100 |
---|---|---|
committer | fiaxh <github@lightrise.org> | 2016-03-15 11:42:13 +0100 |
commit | eaddfa7fd1bcbe03cc6c4c757f91af1040f876fa (patch) | |
tree | 9d8bb8af8cf2f1bd7ead0b3fee07dfb5dddf235d /src/main/java | |
parent | 678bc7b4d4ef2b42323e141985ab9a94f0829593 (diff) |
Check if path for URI is accessible
The path extracted from the Cursor might not be accessible for Conversations. FileUtils accesses URI information through the ContentProvider, so this wouldn't be noticed.
Fixes sharing from open-keychain's TemporaryContentProvider
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/utils/FileUtils.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/eu/siacs/conversations/utils/FileUtils.java b/src/main/java/eu/siacs/conversations/utils/FileUtils.java index ad8b8640..6e75d41c 100644 --- a/src/main/java/eu/siacs/conversations/utils/FileUtils.java +++ b/src/main/java/eu/siacs/conversations/utils/FileUtils.java @@ -10,6 +10,8 @@ import android.os.Environment; import android.provider.DocumentsContract; import android.provider.MediaStore; +import java.io.File; + public class FileUtils { /** @@ -77,7 +79,14 @@ public class FileUtils { } // MediaStore (and general) else if ("content".equalsIgnoreCase(uri.getScheme())) { - return getDataColumn(context, uri, null, null); + String path = getDataColumn(context, uri, null, null); + if (path != null) { + File file = new File(path); + if (!file.canRead()) { + return null; + } + } + return path; } // File else if ("file".equalsIgnoreCase(uri.getScheme())) { |