diff options
author | Calin Juravle <calin@google.com> | 2014-04-10 16:50:32 +0100 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2014-04-10 17:21:16 +0100 |
commit | bb3195ff5c5fa60456fe86927bee3aebcbe867aa (patch) | |
tree | 385e2e0bdf47a97eea085456d1ea899e11a51312 /luni/src/main | |
parent | 30fac583a89ef577ed74629c41c1bea1ffbee4e8 (diff) | |
download | libcore-bb3195ff5c5fa60456fe86927bee3aebcbe867aa.zip libcore-bb3195ff5c5fa60456fe86927bee3aebcbe867aa.tar.gz libcore-bb3195ff5c5fa60456fe86927bee3aebcbe867aa.tar.bz2 |
Don't allow explicit signs in URL port numbers.
Bug: 5239391
Change-Id: Iea158e19de2ace224f29c07c56811b7eab9c0eb9
Diffstat (limited to 'luni/src/main')
-rw-r--r-- | luni/src/main/java/java/net/URLStreamHandler.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/luni/src/main/java/java/net/URLStreamHandler.java b/luni/src/main/java/java/net/URLStreamHandler.java index 8a6c264..d21bb9c 100644 --- a/luni/src/main/java/java/net/URLStreamHandler.java +++ b/luni/src/main/java/java/net/URLStreamHandler.java @@ -131,9 +131,11 @@ public abstract class URLStreamHandler { host = spec.substring(hostStart, hostEnd); int portStart = hostEnd + 1; if (portStart < fileStart) { - port = Integer.parseInt(spec.substring(portStart, fileStart)); - if (port < 0) { - throw new IllegalArgumentException("port < 0: " + port); + char firstPortChar = spec.charAt(portStart); + if (firstPortChar >= '0' && firstPortChar <= '9') { + port = Integer.parseInt(spec.substring(portStart, fileStart)); + } else { + throw new IllegalArgumentException("invalid port: " + port); } } path = null; |