[Rev 01] RFR: 8246348: Crash in libpango on Ubuntu 20.04 with some unicode chars

Kevin Rushforth kcr at openjdk.java.net
Fri Jun 12 13:10:08 UTC 2020

On Fri, 12 Jun 2020 12:37:01 GMT, Johan Vos <jvos at openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/com/sun/javafx/font/freetype/PangoGlyphLayout.java line 140:
>>> 139:             runUtf8.put(run, str);
>>> 140:             if (check(str, "Failed allocating UTF-8 buffer.", context, desc, attrList)) {
>>> 141:                 return;
>> Did you really mean to store the run in the map before checking if str is null ?
> I'm not sure what should happen if str is null. Do we want to be able to retry later? In that case, we shouldn't store
> it in the map. But if it is fatal, and seems to indicate a problem with rtext (e.g. too big?), so in that case it might
> not be worth retrying.

If `str` is null, you would end up retrying it anyway, since `Map::get` will return `null` the next time (if there is a
next time). Also, I think the dispose method might then crash trying to free a null pointer. So I think Phil is right
and that you should not add the `str` to the `Map` if it is null.


PR: https://git.openjdk.java.net/jfx/pull/249

More information about the openjfx-dev mailing list