[dev] [st, dmenu] Crash when attempting to display characters with missing glyphs

From: B. Wilson <x_AT_wilsonb.com>
Date: Fri, 28 Jul 2017 14:44:53 +0900


I use mutt and happened to receive an email that caused st to crash. It turned out that the email contained a unicode emoji character for which I didn't have a suitable font.

The character in question was U+1F917. I was able to reproduce the crash in st by cat-ing a file containing the single bad character. Pasting it from the X clipboard also reliably causes the crash.

This is the error that is produced:

X Error of failed request: BadLength (poly request too large or internal Xlib length error)
Major opcode of failed request: 139 (RENDER)
Minor opcode of failed request: 20 (RenderAddGlyphs)
Serial number of failed request: 1442
Current serial number in output stream: 1454

I'm guessing that somewhere a 'missing glyph' error isn't getting checked, but I wasn't able to find the relevant code from a quick perusal.

Anyway, the same issue seems to exist in dmenu. As a sanity check, I checked against the following:

1) different X terminal, i.e. xterm,
2) different character with missing glyph, i.e. U+1F642, and
3) installing a font with the appropriate glyphs, i.e. Symbola.

As far as I can tell, the crash reliably occurs in st when attempting to display a character that has no associated glyph. As a workaround, I was able to install the Symbola font which
apparently contains several unicode emoji.

Received on Fri Jul 28 2017 - 07:44:53 CEST

This archive was generated by hypermail 2.3.0 : Fri Jul 28 2017 - 07:48:25 CEST