summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRohan Shah <shahrk@google.com>2016-08-19 20:44:50 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-08-19 20:44:50 +0000
commit2a40e91775419db58cda63a21e3e997327e691e7 (patch)
treedded6d8c72567358e3e23bbcc3dc2e630e8e0a01
parent8b3dc05e75c19dcdd97f84efe64e427b1c3718e7 (diff)
parent244074273b14d7b97ef4c18362cba3f18b1cecbf (diff)
downloadandroid_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.java14
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);
}