aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Domurad <[email protected]>2013-03-22 10:32:05 -0400
committerAdam Domurad <[email protected]>2013-03-22 10:32:05 -0400
commitc52ccc8e6696311f31a5a82adbd14b05600ba1b3 (patch)
tree6f24af2c78f29095385975bdef623485ffc32139
parent83536b2d2a7e840df4f398af77f631fbf1f5a910 (diff)
Revert behaviour of PluginParameterParser#isInt to fail on overflow
-rw-r--r--ChangeLog5
-rw-r--r--plugin/icedteanp/java/sun/applet/PluginParameterParser.java7
-rw-r--r--tests/netx/unit/sun/applet/PluginParameterParserTest.java4
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e4169c1..2e56201 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2013-03-22 Adam Domurad <[email protected]>
+ * plugin/icedteanp/java/sun/applet/PluginParameterParser.java
+ (isInt): Revert behaviour to catching NumberFormatException
+
+2013-03-22 Adam Domurad <[email protected]>
+
* netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java
(findClass): Print stacktrace for ClassFormatError
diff --git a/plugin/icedteanp/java/sun/applet/PluginParameterParser.java b/plugin/icedteanp/java/sun/applet/PluginParameterParser.java
index bc6eb50..1db6034 100644
--- a/plugin/icedteanp/java/sun/applet/PluginParameterParser.java
+++ b/plugin/icedteanp/java/sun/applet/PluginParameterParser.java
@@ -60,7 +60,12 @@ class PluginParameterParser {
}
static boolean isInt(String s) {
- return s.matches("^-?\\d+$");
+ try {
+ Integer.parseInt(s);
+ return true;
+ } catch(NumberFormatException e) {
+ return false;
+ }
}
/**
diff --git a/tests/netx/unit/sun/applet/PluginParameterParserTest.java b/tests/netx/unit/sun/applet/PluginParameterParserTest.java
index 162d603..6e53856 100644
--- a/tests/netx/unit/sun/applet/PluginParameterParserTest.java
+++ b/tests/netx/unit/sun/applet/PluginParameterParserTest.java
@@ -15,6 +15,10 @@ public class PluginParameterParserTest {
assertFalse(PluginParameterParser.isInt("1.0"));
assertFalse(PluginParameterParser.isInt("abc"));
assertTrue(PluginParameterParser.isInt("1"));
+
+ /* Numbers that overflow or underflow can cause problems if we
+ * consider them valid, and pass them to parseInt: */
+ assertFalse(PluginParameterParser.isInt("4294967295"));
}
@Test