String name, mode;
ParcelFileDescriptor fd;
int i;
+ Uri uriObject;
/* Figure out the file access mode. */
if (truncate)
mode += "t";
+ /* Decode the URI. It might be possible for a perverse user to
+ construct a content file name that Android finds unparsable, so
+ punt if the result is NULL. */
+
+ uriObject = Uri.parse (uri);
+ if (uriObject == null)
+ return -1;
+
/* Try to open a corresponding ParcelFileDescriptor. Though
`fd.detachFd' is exclusive to Honeycomb and up, this function is
never called on systems older than KitKat, which is Emacs's
minimum requirement for access to /content/by-authority. */
- fd = resolver.openFileDescriptor (Uri.parse (uri), mode);
+ fd = resolver.openFileDescriptor (uriObject, mode);
if (fd == null)
return -1;
Uri uri;
int rc, flags;
+ /* Decode the URI. It might be possible that perverse user should
+ construct a content file name that Android finds unparsable, so
+ punt if the result is NULL. */
+
uri = Uri.parse (name);
+ if (uri == null)
+ return false;
+
flags = 0;
if (readable)