From 1f8c00388fcfe0f8536f979b06c59b676a101980 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 22 May 2021 08:08:18 +0200 Subject: [PATCH] Sanitize mailto --- .../java/eu/faircode/email/ActivityCompose.java | 14 ++++++++------ app/src/main/java/eu/faircode/email/Log.java | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityCompose.java b/app/src/main/java/eu/faircode/email/ActivityCompose.java index 331f561711..2dbe2d2544 100644 --- a/app/src/main/java/eu/faircode/email/ActivityCompose.java +++ b/app/src/main/java/eu/faircode/email/ActivityCompose.java @@ -92,16 +92,18 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB Uri uri = intent.getData(); if (uri != null && "mailto".equalsIgnoreCase(uri.getScheme())) { + EntityLog.log(this, "mailto=" + Log.printableString(uri.toString())); + // https://www.ietf.org/rfc/rfc2368.txt MailTo mailto = MailTo.parse(uri.toString()); - String to = mailto.getTo(); - if (to != null) - args.putString("to", to); + List to = sanitize(new String[]{mailto.getTo()}); + if (to.size() == 1) + args.putString("to", to.get(0)); - String cc = mailto.getCc(); - if (cc != null) - args.putString("cc", cc); + List cc = sanitize(new String[]{mailto.getCc()}); + if (cc.size() == 1) + args.putString("cc", cc.get(0)); String subject = mailto.getSubject(); if (subject != null) diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 7406035e93..e29252494c 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -550,7 +550,7 @@ public class Log { return result; } - private static String printableString(String value) { + static String printableString(String value) { StringBuilder result = new StringBuilder(); for (int i = 0; i < value.length(); i++) { char kar = value.charAt(i);