diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | plugin/icedteanp/java/sun/applet/PluginParameterParser.java | 7 | ||||
-rw-r--r-- | tests/netx/unit/sun/applet/PluginParameterParserTest.java | 4 |
3 files changed, 15 insertions, 1 deletions
@@ -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 |