summaryrefslogtreecommitdiff
path: root/java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch
diff options
context:
space:
mode:
authorMathieu Arnold <mat@FreeBSD.org>2014-01-04 14:33:12 +0000
committerMathieu Arnold <mat@FreeBSD.org>2014-01-04 14:33:12 +0000
commitf9902a1f64a1ea967e3213ab2856b11fac23c03d (patch)
treeb805f49f10b326276206fe3fe63fa9178c6758f1 /java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch
parent- Fix packaging of examples after move to PYDISTUTILS_AUTOPLIST (diff)
Revert lang/openjdk6 to b28.
With hat: portmgr-lurker
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch')
-rw-r--r--java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch b/java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch
new file mode 100644
index 000000000000..920bce81adbe
--- /dev/null
+++ b/java/openjdk6/files/icedtea/openjdk/8020293-jvm_crash.patch
@@ -0,0 +1,40 @@
+# HG changeset patch
+# User jchen
+# Date 1374527199 25200
+# Mon Jul 22 14:06:39 2013 -0700
+# Node ID 2adb9f71f6c0723acf40877f059d276557b71034
+# Parent 150e0c3e95ce6869f8e7b42c6d8683817433e124
+8020293: JVM crash
+Reviewed-by: prr, jgodinez
+
+diff -r 150e0c3e95ce -r 2adb9f71f6c0 src/share/classes/sun/font/GlyphLayout.java
+--- jdk/src/share/classes/sun/font/GlyphLayout.java Mon Oct 28 20:56:09 2013 +0000
++++ jdk/src/share/classes/sun/font/GlyphLayout.java Mon Jul 22 14:06:39 2013 -0700
+@@ -468,9 +468,10 @@
+ _gvdata.grow();
+ }
+ }
+- if (_gvdata._count < 0) {
+- break;
+- }
++ }
++ // Break out of the outer for loop if layout fails.
++ if (_gvdata._count < 0) {
++ break;
+ }
+ }
+
+diff -r 150e0c3e95ce -r 2adb9f71f6c0 src/share/native/sun/font/layout/SunLayoutEngine.cpp
+--- jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp Mon Oct 28 20:56:09 2013 +0000
++++ jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp Mon Jul 22 14:06:39 2013 -0700
+@@ -104,6 +104,10 @@
+
+ int putGV(JNIEnv* env, jint gmask, jint baseIndex, jobject gvdata, const LayoutEngine* engine, int glyphCount) {
+ int count = env->GetIntField(gvdata, gvdCountFID);
++ if (count < 0) {
++ JNU_ThrowInternalError(env, "count negative");
++ return 0;
++ }
+
+ jarray glyphArray = (jarray)env->GetObjectField(gvdata, gvdGlyphsFID);
+ if (IS_NULL(glyphArray)) {