--- old/src/solaris/native/sun/awt/awt_Font.c 2014-04-04 11:24:02.000000000 -0700 +++ new/src/solaris/native/sun/awt/awt_Font.c 2014-04-04 11:24:01.000000000 -0700 @@ -540,6 +540,19 @@ fdata->xfont = fdata->flist[i].xfont; fdata->flist[i].index_length = 1; } else { + /* Free any already allocated storage and fonts */ + int j = i; + for (j = 0; j <= i; j++) { + free((void *)fdata->flist[j].xlfd); + JNU_ReleaseStringPlatformChars(env, NULL, + fdata->flist[j].charset_name); + if (fdata->flist[j].load) { + XFreeFont(awt_display, fdata->flist[j].xfont); + } + } + free((void *)fdata->flist); + free((void *)fdata); + if (errmsg != NULL) { *errmsg = "java/lang" "NullPointerException"; }