summaryrefslogtreecommitdiffstats
path: root/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java')
-rw-r--r--mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java
index aa3f5c3174..bc9eff98f0 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/ContentInputStream.java
@@ -37,6 +37,11 @@ import org.mozilla.gecko.annotation.WrapForJNI;
try {
mFd = cr.openAssetFileDescriptor(uri, "r");
+ if (mFd == null) {
+ Log.e(LOGTAG, "Cannot open the uri: " + aUri + " (no file descriptor)");
+ close();
+ return;
+ }
setInputStream(mFd.createInputStream());
if (!checkHeaders(HEADERS)) {
@@ -127,7 +132,17 @@ import org.mozilla.gecko.annotation.WrapForJNI;
|| isExported(context, uri)
|| wasGrantedPermission(context, uri)) {
final ContentResolver cr = context.getContentResolver();
- cr.openAssetFileDescriptor(uri, "r").close();
+ if (cr == null) {
+ Log.e(LOGTAG, "No content resolver");
+ return false;
+ }
+ final AssetFileDescriptor fd = cr.openAssetFileDescriptor(uri, "r");
+ if (fd == null) {
+ // The descriptor can be null because the provider crashed.
+ Log.e(LOGTAG, "No asset file descriptor");
+ return false;
+ }
+ fd.close();
Log.d(LOGTAG, "The uri is readable: " + uri);
return true;
}