aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfiaxh <github@lightrise.org>2016-03-15 11:09:28 +0100
committerfiaxh <github@lightrise.org>2016-03-15 11:42:13 +0100
commiteaddfa7fd1bcbe03cc6c4c757f91af1040f876fa (patch)
tree9d8bb8af8cf2f1bd7ead0b3fee07dfb5dddf235d
parent678bc7b4d4ef2b42323e141985ab9a94f0829593 (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
-rw-r--r--src/main/java/eu/siacs/conversations/utils/FileUtils.java11
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())) {