summaryrefslogtreecommitdiffstats
path: root/luni/src/main
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2014-04-10 16:50:32 +0100
committerCalin Juravle <calin@google.com>2014-04-10 17:21:16 +0100
commitbb3195ff5c5fa60456fe86927bee3aebcbe867aa (patch)
tree385e2e0bdf47a97eea085456d1ea899e11a51312 /luni/src/main
parent30fac583a89ef577ed74629c41c1bea1ffbee4e8 (diff)
downloadlibcore-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.java8
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;