diff options
author | glewis <glewis@FreeBSD.org> | 2011-02-10 01:13:40 +0800 |
---|---|---|
committer | glewis <glewis@FreeBSD.org> | 2011-02-10 01:13:40 +0800 |
commit | e4ddfbfefe0ca05674e6b664f0cb1c8ba731da4c (patch) | |
tree | 15508563d3d541f5ed67b504de652f83c03f931f /java/jdk15 | |
parent | 8777f4fec4598d75ce28a78d51213b57286e995a (diff) | |
download | freebsd-ports-gnome-e4ddfbfefe0ca05674e6b664f0cb1c8ba731da4c.tar.gz freebsd-ports-gnome-e4ddfbfefe0ca05674e6b664f0cb1c8ba731da4c.tar.zst freebsd-ports-gnome-e4ddfbfefe0ca05674e6b664f0cb1c8ba731da4c.zip |
. Fix infinite loop in parsing certain doubles. See CVE-2010-4476.
Diffstat (limited to 'java/jdk15')
-rw-r--r-- | java/jdk15/Makefile | 2 | ||||
-rw-r--r-- | java/jdk15/files/patch-FloatingDecimal.java | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/java/jdk15/Makefile b/java/jdk15/Makefile index 6f243b05b89d..f9dd5f714303 100644 --- a/java/jdk15/Makefile +++ b/java/jdk15/Makefile @@ -7,7 +7,7 @@ PORTNAME= jdk PORTVERSION= ${JDK_VERSION}.${JDK_UPDATE_VERSION}p${JDK_PATCHSET_VERSION} -PORTREVISION= 9 +PORTREVISION= 10 PORTEPOCH= 1 CATEGORIES= java devel MASTER_SITES= # http://download.java.net/tiger/ diff --git a/java/jdk15/files/patch-FloatingDecimal.java b/java/jdk15/files/patch-FloatingDecimal.java new file mode 100644 index 000000000000..6141b18cb7eb --- /dev/null +++ b/java/jdk15/files/patch-FloatingDecimal.java @@ -0,0 +1,11 @@ +--- ../../j2se/src/share/classes/sun/misc/FloatingDecimal.java.orig 2011-02-08 21:47:56.000000000 -0800 ++++ ../../j2se/src/share/classes/sun/misc/FloatingDecimal.java 2011-02-08 21:48:18.000000000 -0800 +@@ -1529,7 +1529,7 @@ + if ( (cmpResult = bigB.cmp( bigD ) ) > 0 ){ + overvalue = true; // our candidate is too big. + diff = bigB.sub( bigD ); +- if ( (bigIntNBits == 1) && (bigIntExp > -expBias) ){ ++ if ( (bigIntNBits == 1) && (bigIntExp > -expBias+1) ){ + // candidate is a normalized exact power of 2 and + // is too big. We will be subtracting. + // For our purposes, ulp is the ulp of the |