On Tue, Jan 17, 2017 at 08:47:09PM +0100, Sören Tempel wrote:
> Hello there,
>
> I believe I found a bug in libsl. The drw_text function from libsl
> crashes with an X Error when the passed text contains an emoji. The
> exact error message is the following:
>
> X Error of failed request: BadLength (poly request too large or internal Xlib length error)
> Major opcode of failed request: 138 (RENDER)
> Minor opcode of failed request: 20 (RenderAddGlyphs)
> Serial number of failed request: 28
> Current serial number in output stream: 29
>
> I reproduced this bug with dwm and dmenu. When using dmenu you can
> reproduce this bug in the following way: First of all you will need to
> have a font installed which actually supports emojis. I used Googles
> noto emoji font [1]. After installing such a font it will be
> automatically picked up by libsl as a fallback font for emojis (assuming
> that the font you configured in config.h doesn't support them).
>
> To reproduce the error message shown above you will then just need to
> pass an emoji to dmenu over stdin. I used the clown face (U+1F921) but
> different emojis should also work.
>
> Even though the instructions above are limited to dmenu it also effects
> other suckless software using libsl, for instance dwm. Among other
> things dwm uses drw_text to display the title of the current window in
> the topbar. This is somewhat annoying because if you open a webpage
> containing an emoji in its title (assuming your web browser sets the
> window title to the page title) your entire window manager will crash.
>
> I tried to resolve the issue myself the only thing I managed to figure
> out is that the Xlib function causing the crash is XftTextExtentsUtf8
> which is called from drw_font_getexts (called from drw_text). However, I
> I am too inexperienced with Xlib myself to come up with a patch.
>
> Sören.
>
> [1]: https://github.com/googlei18n/noto-emoji
>
I cannot reproduce this issue, but it has been reported before.
Do you use the latest git version for dmenu? Do you have any custom patches or
changes applied?
What OS / distro and library versions do you use?
Can you provide your config.h, font configuration files and command you used
to generate the text?
--
Kind regards,
Hiltjo
Received on Wed Jan 18 2017 - 18:36:33 CET