aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs
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 /src/main/java/eu/siacs
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
Diffstat (limited to 'src/main/java/eu/siacs')
-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())) {