diff options
author | Rohan Shah <shahrk@google.com> | 2016-08-19 20:44:50 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-08-19 20:44:50 +0000 |
commit | 2a40e91775419db58cda63a21e3e997327e691e7 (patch) | |
tree | dded6d8c72567358e3e23bbcc3dc2e630e8e0a01 | |
parent | 8b3dc05e75c19dcdd97f84efe64e427b1c3718e7 (diff) | |
parent | 244074273b14d7b97ef4c18362cba3f18b1cecbf (diff) | |
download | android_packages_apps_Email-2a40e91775419db58cda63a21e3e997327e691e7.tar.gz android_packages_apps_Email-2a40e91775419db58cda63a21e3e997327e691e7.tar.bz2 android_packages_apps_Email-2a40e91775419db58cda63a21e3e997327e691e7.zip |
Limit account id and id to longs am: 9794d7e821 am: 4fc61f9a45 am: 9b35eea4c5 am: 093c608106 am: c7ba2c9c4e am: a2c9fbde45 am: 4b0afdab56
am: 244074273b
Change-Id: I70ff67e29992b44596364a5aa426cd8acbd0b403
-rw-r--r-- | provider_src/com/android/email/provider/AttachmentProvider.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/provider_src/com/android/email/provider/AttachmentProvider.java b/provider_src/com/android/email/provider/AttachmentProvider.java index c64fb4e4c..0abed9712 100644 --- a/provider_src/com/android/email/provider/AttachmentProvider.java +++ b/provider_src/com/android/email/provider/AttachmentProvider.java @@ -166,8 +166,8 @@ public class AttachmentProvider extends ContentProvider { long callingId = Binder.clearCallingIdentity(); try { List<String> segments = uri.getPathSegments(); - String accountId = segments.get(0); - String id = segments.get(1); + final long accountId = Long.parseLong(segments.get(0)); + final long id = Long.parseLong(segments.get(1)); String format = segments.get(2); if (AttachmentUtilities.FORMAT_THUMBNAIL.equals(format)) { int width = Integer.parseInt(segments.get(3)); @@ -176,8 +176,7 @@ public class AttachmentProvider extends ContentProvider { File dir = getContext().getCacheDir(); File file = new File(dir, filename); if (!file.exists()) { - Uri attachmentUri = AttachmentUtilities. - getAttachmentUri(Long.parseLong(accountId), Long.parseLong(id)); + Uri attachmentUri = AttachmentUtilities.getAttachmentUri(accountId, id); Cursor c = query(attachmentUri, new String[] { Columns.DATA }, null, null, null); if (c != null) { @@ -218,9 +217,14 @@ public class AttachmentProvider extends ContentProvider { } else { return ParcelFileDescriptor.open( - new File(getContext().getDatabasePath(accountId + ".db_att"), id), + new File(getContext().getDatabasePath(accountId + ".db_att"), + String.valueOf(id)), ParcelFileDescriptor.MODE_READ_ONLY); } + } catch (NumberFormatException e) { + LogUtils.e(Logging.LOG_TAG, + "AttachmentProvider.openFile: Failed to open as id is not a long"); + return null; } finally { Binder.restoreCallingIdentity(callingId); } |