AWT crasher patch to be back-ported by all distros

Andrew Haley aph at redhat.com
Tue Dec 4 06:21:08 PST 2012


This bug affects LibreOffice, crashes it on all known OpenJDKs, and is
committed upstream.  It's worth patching IcedTea and all OpenJDK-
derived packages until the next JDK7 update, which may be some time.

Andrew.


# HG changeset patch
# User aph
# Date 1354629728 0
# Node ID ea20c9388d90fd9fda085c59ceae25ea9d686ec6
# Parent  4aad3e6f68d2463f4fee63c93153394be6489c00
8004344: Fix a crash in ToolkitErrorHandler() in XlibWrapper.c
Summary: Code does not check for JNU_GetEnv returning NULL.
Reviewed-by: anthony

diff -r 4aad3e6f68d2 -r ea20c9388d90 src/solaris/native/sun/xawt/XlibWrapper.c
--- a/src/solaris/native/sun/xawt/XlibWrapper.c	Tue Dec 04 17:17:45 2012 +0400
+++ b/src/solaris/native/sun/xawt/XlibWrapper.c	Tue Dec 04 14:02:08 2012 +0000
@@ -1260,13 +1260,15 @@

 JavaVM* jvm = NULL;
 static int ToolkitErrorHandler(Display * dpy, XErrorEvent * event) {
+    JNIEnv * env;
     if (jvm != NULL) {
-        JNIEnv * env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
-        return JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XToolkit", "globalErrorHandler", "(JJ)I",
-                                          ptr_to_jlong(dpy), ptr_to_jlong(event)).i;
-    } else {
-        return 0;
+        env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
+        if (env) {
+            return JNU_CallStaticMethodByName(env, NULL, "sun/awt/X11/XToolkit", "globalErrorHandler", "(JJ)I",
+                                              ptr_to_jlong(dpy), ptr_to_jlong(event)).i;
+        }
     }
+    return 0;
 }

 /*



More information about the distro-pkg-dev mailing list