summaryrefslogtreecommitdiffstats
path: root/emailcommon
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2013-10-31 16:39:03 -0700
committerTony Mantler <nicoya@google.com>2013-10-31 16:39:03 -0700
commit2ed113c7137e6f1059a22fa018332d56ec740a0a (patch)
treef095eb00f79c34d6773516a63f1ceae7df6684cd /emailcommon
parent6ceae42b30e03399513b29d401319666915096d5 (diff)
downloadandroid_packages_apps_Email-2ed113c7137e6f1059a22fa018332d56ec740a0a.tar.gz
android_packages_apps_Email-2ed113c7137e6f1059a22fa018332d56ec740a0a.tar.bz2
android_packages_apps_Email-2ed113c7137e6f1059a22fa018332d56ec740a0a.zip
Foreign characters may be letters and digits, but they're not allowed in Uri/Url schemes
b/11356390 Change-Id: Ic510607ab5f671e3f3f474ea3c2f4af7e9966cb1
Diffstat (limited to 'emailcommon')
-rw-r--r--emailcommon/src/com/android/emailcommon/utility/SSLUtils.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
index b28593485..66afe146c 100644
--- a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
+++ b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
@@ -175,6 +175,18 @@ public class SSLUtils {
return wrapped;
}
+ // Character.isLetter() is locale-specific, and will potentially return true for characters
+ // outside of ascii a-z,A-Z
+ private static boolean isAsciiLetter(char c) {
+ return ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z');
+ }
+
+ // Character.isDigit() is locale-specific, and will potentially return true for characters
+ // outside of ascii 0-9
+ private static boolean isAsciiNumber(char c) {
+ return ('0' <= c && c <= '9');
+ }
+
/**
* Escapes the contents a string to be used as a safe scheme name in the URI according to
* http://tools.ietf.org/html/rfc3986#section-3.1
@@ -189,7 +201,7 @@ public class SSLUtils {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
- if (Character.isLetter(c) || Character.isDigit(c)
+ if (isAsciiLetter(c) || isAsciiNumber(c)
|| ('-' == c) || ('.' == c)) {
// Safe - use as is.
sb.append(c);